¿Redondear doble en dos decimales en C#?


Quiero redondear el valor doble en dos decimales en c# ¿cómo puedo hacer eso?

double inputValue = 48.485;

Después de redondear

inputValue = 48.49;

Relacionado: c # - Cómo redondeo un valor decimal a 2 lugares decimales (para la salida en una página)

Author: Community, 2010-03-01

6 answers

Esto funciona:

inputValue = Math.Round(inputValue, 2);
 365
Author: Alex LE,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-07-04 03:47:55
Math.Round(inputValue, 2, MidpointRounding.AwayFromZero)
 90
Author: nandin,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-03-01 17:54:42

Debe usar

inputvalue=Math.Round(inputValue, 2, MidpointRounding.AwayFromZero)

Matemáticas.Ronda

Math.Round redondea un valor de punto flotante de doble precisión a un número especificado de dígitos fraccionarios.

MidpointRounding

Especifica cómo los métodos matemáticos de redondeo deben procesar un número eso está a medio camino entre dos números.

Básicamente la función anterior tomará su valor de entrada y lo redondeará a 2 (o el número que especifique) decimales. Con MidpointRounding.AwayFromZero cuando un número está a medio camino entre otros dos, se redondea hacia el número más cercano que está lejos de cero. También hay otra opción que puede usar que redondea hacia el número par más cercano.

 24
Author: Gage,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-09-28 20:28:40

Use Matemáticas.Ronda

value = Math.Round(48.485, 2);
 17
Author: recursive,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-03-01 17:52:38

Otra forma fácil es usar toString con un parámetro. Ejemplo:

float d = 54.9700F;    
string s = d.ToString("N2");
Console.WriteLine(s);

Resultado:

54.97
 10
Author: Diwas,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-11-15 22:09:46

Puedes probar uno desde abajo.hay muchas maneras para esto.

1. 
 value=Math.Round(123.4567, 2, MidpointRounding.AwayFromZero) //"123.46"
2.
 inputvalue=Math.Round(123.4567, 2)  //"123.46"
3. 
 String.Format("{0:0.00}", 123.4567);      // "123.46"
4. 
string.Format("{0:F2}", 123.456789);     //123.46
string.Format("{0:F3}", 123.456789);     //123.457
string.Format("{0:F4}", 123.456789);     //123.4568
 6
Author: reza.cse08,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-10-17 07:41:38