Foro de elhacker.net

Programación => .NET (C#, VB.NET, ASP) => Mensaje iniciado por: Pablo Videla en 23 Octubre 2008, 20:40 pm



Título: Aproximar un numero
Publicado por: Pablo Videla en 23 Octubre 2008, 20:40 pm
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 ?
Código:
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.   



Título: Re: Aproximar un numero
Publicado por: 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


Título: Re: Aproximar un numero
Publicado por: Pablo Videla en 23 Octubre 2008, 22:42 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


Título: Re: Aproximar un numero
Publicado por: AntonioMeucci en 25 Octubre 2008, 17:43 pm
Hola,
  para que el round tenga el comportamiento que quieres, puedes usar:
Código:
decimal result = Math.Round(1.5M, MidpointRounding.AwayFromZero);
así, 1.5 lo redondea a 2, y 1.49 a 1.
Saludos


Título: Re: Aproximar un numero
Publicado por: Pablo Videla en 25 Octubre 2008, 21:52 pm
Gracias por la ayuda , problema resuelto ,  ;D