Redondeo de decimal.

15/02/2005 - 10:35 por JOSE ANTONIO | Informe spam
El metodo round de decimal, no se comporta redondeando como estamos
acostumbrados en la UE.
si el ultimo decimal a redondear es mayor o igual a 5 se suma.

7,45 = 7,4
7,44=7,4

Sin embargo el ROUND de sql server si se comporta de esta forma.

Cuando van a estandarizar el round para que los programadores no nos hagamos
la picha un lio con comportamientos diferentes en lo que debiera ser la
misma función?

Para poder redondear en c# de la misma forma que lo hacer ROUND de sql
server hay que crear una clase o metodo nuevo?


Saludos.

Preguntas similare

Leer las respuestas

#6 Octavio Hernandez
17/02/2005 - 20:58 | Informe spam
Privet, Vyacheslav!

En NET 2.0 van a añadirle una sobrecarga a Decimal.Round() para que se
puedan especificar distintos comportamientos.

http://msdn2.microsoft.com/library/9s0xa85y.aspx

Ejemplos:

Decimal.Round(numero, decimales, MidpointRounding.AwayFromZero); //
redondeo "tipo UE"
Decimal.Round(numero, decimales, MidpointRounding.ToEven); // redondeo
IEEE 754

Slds - Octavio

"Vyacheslav Popov" escribió en el mensaje
news:%
"JOSE ANTONIO" escribió en el mensaje
news:
El metodo round de decimal, no se comporta redondeando como estamos
acostumbrados en la UE.
si el ultimo decimal a redondear es mayor o igual a 5 se suma.

7,45 = 7,4
7,44=7,4

Sin embargo el ROUND de sql server si se comporta de esta forma.

Cuando van a estandarizar el round para que los programadores no nos
hagamos la picha un lio con comportamientos diferentes en lo que debiera
ser la misma función?



La normalización IEEE 754 recomienda efectuar un redondeo al más próximo;
y si el error es igual en ambos sentidos se hace un redondeo al par, que
consiste en redondear por defecto o por exceso, pero siempre de forma que
el bit menos significativo del número resultante sea 0.


Para poder redondear en c# de la misma forma que lo hacer ROUND de sql
server hay que crear una clase o metodo nuevo?


Saludos.







Respuesta Responder a este mensaje
#7 Vyacheslav Popov
17/02/2005 - 21:13 | Informe spam
Privet Octavio.

Me parece muy buena herramienta.

Original number
AwayFromZero
ToEven

3.5
4
4

2.8
3
3

2.5
3
2

2.1
2
2

-2.1
-2
-2

-2.5
-3
-2

-2.8
-3
-3

-3.5
-4
-4



Saludos.

"Octavio Hernandez" escribió en el mensaje
news:%
Privet, Vyacheslav!

En NET 2.0 van a añadirle una sobrecarga a Decimal.Round() para que se
puedan especificar distintos comportamientos.

http://msdn2.microsoft.com/library/9s0xa85y.aspx

Ejemplos:

Decimal.Round(numero, decimales, MidpointRounding.AwayFromZero); //
redondeo "tipo UE"
Decimal.Round(numero, decimales, MidpointRounding.ToEven); // redondeo
IEEE 754

Slds - Octavio

"Vyacheslav Popov" escribió en el mensaje
news:%
"JOSE ANTONIO" escribió en el mensaje
news:
El metodo round de decimal, no se comporta redondeando como estamos
acostumbrados en la UE.
si el ultimo decimal a redondear es mayor o igual a 5 se suma.

7,45 = 7,4
7,44=7,4

Sin embargo el ROUND de sql server si se comporta de esta forma.

Cuando van a estandarizar el round para que los programadores no nos
hagamos la picha un lio con comportamientos diferentes en lo que debiera
ser la misma función?



La normalización IEEE 754 recomienda efectuar un redondeo al más próximo;
y si el error es igual en ambos sentidos se hace un redondeo al par, que
consiste en redondear por defecto o por exceso, pero siempre de forma que
el bit menos significativo del número resultante sea 0.


Para poder redondear en c# de la misma forma que lo hacer ROUND de sql
server hay que crear una clase o metodo nuevo?


Saludos.











email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida