Recientemente estaba trabajando con un proyecto que involucra el manejo de calificaciones. Para los redondeos de calificaciones estaba usando la función round del namespace Math.
Pues todo iba muy bien hasta que empezó a ir mal ñ_ñ. Sucede que si haces algo así:
Math.Round(95.5,0) el resultado esperado es 96... y efectivamnete eso es lo que resulta.
Sin embargo, al hacer esto:
Math.Round(92.5,0) el resultado esperado es 93 ... pero no, arroja un 92 u_u.
Lo que dice MSDN al respecto es esta función se apega al estandar IEEE Standard 754 y pues por extraño que parezca, ese es el resultado "correcto".
Para resolverlo, sólo hay que usar la sobrecarga de esta función que adicional a los dos parámetros (número a redondear, numero de decimales) añade un tercero que es un enumerator llamado MidpointRounding y elegir AwayFromZero, así:
Math.Round(92.5,0,MidpointRounding.AwayFromZero)
Resultado:93 ñ_ñ
jueves, 2 de agosto de 2007
Problemas con Math.Round
Habla de...
Programación herramientas y demás
Suscribirse a:
Comentarios de la entrada (Atom)
1 comentario:
Took me time to read the whole article, the article is great but the comments bring more brainstorm ideas, thanks.
- Johnson
Publicar un comentario