Hola a todos , bueno tengo un pequeño problema en un ejercicio que estoy haciendo en C# , necesito aproximar un numero a un numero natural , ejemplo:
si un resultado me da 1,5 , necesito que lo aproxime a 2 , se entiende ?
int total = 3;
Decimal otro = total/ 2;
Decimal result = Math.Round(otro);
Console.WriteLine("La media es : " + result);
me dijeron que con esa funcion lo hacia , pero lo malo es que me da solo 1
Alguien sabe aproximar el valor? , gracias de ante mano , saludos
BadDevil.
hola,
en este caso tu division da como resultado 1.5, la regla dice que si la expresion decimal es menor que o igual .5 se aproxima hasta el entero mas bajo si es superior a .5 se aproxima hasta el entero mas alto.
Intenta cambiar de numero y te daras cuenta que si funciona, pues la funcion que estas utilizando es la correcta.
Vinculo a la clase Math (MSDN).
http://msdn.microsoft.com/es-es/library/system.math(VS.80).aspx
Atentamente,
Juan Manuel Lombana
Medellín - Colombia
Cita de: MANULOMM en 23 Octubre 2008, 22:19 PM
hola,
en este caso tu division da como resultado 1.5, la regla dice que si la expresion decimal es menor que o igual .5 se aproxima hasta el entero mas bajo si es superior a .5 se aproxima hasta el entero mas alto.
Intenta cambiar de numero y te daras cuenta que si funciona, pues la funcion que estas utilizando es la correcta.
Vinculo a la clase Math (MSDN).
http://msdn.microsoft.com/es-es/library/system.math(VS.80).aspx
Atentamente,
Juan Manuel Lombana
Medellín - Colombia
ahh muchas gracias , pero creo que no me servira para lo que quiero , por que quiero sacar la media de los sueldos de unos empleados , y necesito sacarlo del arreglo y sacar el del medio , mmm... no habra una funcion math para eso , no hablo de la media aritmetica , si no la media , esa de economia , xD , muchas gracias por tu respuesta , voy a tener que ingeniermela de otra forma =P
Hola,
para que el round tenga el comportamiento que quieres, puedes usar:
decimal result = Math.Round(1.5M, MidpointRounding.AwayFromZero);
así, 1.5 lo redondea a 2, y 1.49 a 1.
Saludos
Gracias por la ayuda , problema resuelto , ;D