c# - round - ¿Cómo redondear a dos decimales en una cadena?
round double c# (6)
Posible duplicado:
c # - ¿Cómo redondeo un valor decimal a 2 lugares decimales (para la salida en una página)
string strTemp = "0.51667308807373";
Convierte a decimal redondeando dos decimales.
Convierta el valor a un número de punto flotante, luego redondee:
double temp = Double.Parse(strTemp, CultureInfo.InvariantCulture);
temp = Math.Round(temp, 2);
Alternativamente, si desea que el resultado sea una cadena, simplemente analícelo y formatéelo con dos decimales:
double temp = Double.Parse(strTemp, CultureInfo.InvariantCulture);
string result = temp.ToString("N2", CultureInfo.InvariantCulture);
Nota: El objeto CultureInfo
es para que los métodos siempre usen un punto como separador decimal, independientemente de la configuración de la cultura local.
Primero convierta la cadena a decimal (usando Decimal.Parse o Decimal.TryParse).
decimal d = Decimal.Parse("123.45678");
Luego redondee el valor decimal utilizando Ronda (d, m), donde d es su número, m es el número de decimales, consulte http://msdn.microsoft.com/en-us/library/6be1edhb.aspx
decimal rounded = Decimal.Round(d, 2);
Si solo desea redondear para la presentación, puede omitir el redondeo a un decimal y simplemente redondear el valor en la salida:
String.Format("{0:0.00}", 123.45678m);
puede usar la información de este enlace http://www.csharp-examples.net/string-format-double/ para el valor doble, use double.parse api
Puede utilizar información de formato de número. Algo como
NumberFormatInfo nfi = new CultureInfo("en-US", false).NumberFormat;
double myInt = 0.51667308807373;
// Displays the same value with four decimal digits.
nfi.NumberDecimalDigits = 2;
Console.WriteLine(myInt.ToString("N", nfi));
Console.ReadKey();
var roundedTemp = Math.Round(decimal.Parse(strTemp), 2);
Es posible que desee verificar para asegurarse de que la cadena sea siempre un decimal primero, pero piense que esta es su esencia.
Math.Round(Convert.ToDecimal(strTemp), 2);