Aproximar un numero

Iniciado por Pablo Videla, 23 Octubre 2008, 20:40 PM

0 Miembros y 1 Visitante están viendo este tema.

Pablo Videla

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.   


MANULOMM

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


Pablo Videla

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

AntonioMeucci

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

Pablo Videla

Gracias por la ayuda , problema resuelto ,  ;D