¿Existe una especificación oficial para la función round
en Haskell? En GHCi versión 7.0.3 veo el siguiente comportamiento:Redondea al entero más cercano
ghci> round (0.5 :: Double)
0
ghci> round (1.5 :: Double)
2
Dado que tanto el 0,5 y el 1,5 son representables exactamente como números de punto flotante, que esperaba ver el mismo comportamiento que en Python:
>>> round(0.5)
1.0
>>> round(1.5)
2.0
¿Hay alguna razón para la diferencia, o es una peculiaridad de GHCi?
Tenga en cuenta que Python 3 se comporta de la misma manera que GHCi aquí. –
Interesante, gracias. ¿Sabes por qué IEEE especifica el redondeo al número par? Parece poco intuitivo para mí, ya sea de ronda o ronda desde cero tendría más sentido. –
Supongo que hace más probable que los errores de redondeo se cancelen si redondea un grupo de números y luego los resume ... –