visual round redondear quitar hacia formato float decimales arriba abajo c# asp.net

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 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);