Pero que tramposo… seguro que sabes perfectamente que 0.1 y 0.9 son números que no tienen representación binaria finita.
Me parecen pocos dígitos de precisión decimal, pero son los que se obtienen con el formato IEEE 754 de doble precisión (64 bits). Lo curioso es que si utilizamos simple precisión (32 bits) obtenemos un resultado casualmente más exacto:
Float: -0.000000
Double: -2.77556e-17
miguev dice...
14/12/2005 a las 9:31 am
No lo sabía pero lo supuse. No pensaba que habría tanto error en una resta tan “fácil”
Pero que tramposo… seguro que sabes perfectamente que 0.1 y 0.9 son números que no tienen representación binaria finita.
Me parecen pocos dígitos de precisión decimal, pero son los que se obtienen con el formato IEEE 754 de doble precisión (64 bits). Lo curioso es que si utilizamos simple precisión (32 bits) obtenemos un resultado casualmente más exacto:
Float: -0.000000
Double: -2.77556e-17
No lo sabía pero lo supuse. No pensaba que habría tanto error en una resta tan “fácil”
Google no sabe restar
aquí tienes la prueba… 1-0,9 = -2,77*10^-17
que sepas que ya lo han corregido
Envía un Trackback | Suscríbete a este post por RSS