BigDecimal en 1.8 vs. 1.9
Cuando actualizo a ruby 1.9, tengo una prueba fallida al comparar los valores esperados con los valores reales para unBigDecimal
que es el resultado de dividir un Flotador.
expected: '0.495E0',9(18) got: '0.4950000000 0000005E0',18(27)
buscar en Google cosas como "precisión bigdecimal ruby" y "cambios bigdecimal ruby 1.9" no me lleva a ninguna parte.
Como lo hizoBigDecimal
El cambio de comportamiento de @ en ruby 1.9?
update 1
> RUBY_VERSION
=> "1.8.7"
> 1.23.to_d
=> #<BigDecimal:1034630a8,'0.123E1',18(18)>
> RUBY_VERSION
=> "1.9.3"
> 1.23.to_d
=> #<BigDecimal:1029f3988,'0.123E1',18(45)>
¿Qué significa 18 (18) y 18 (45)? Precisión imagino, pero ¿cuál es la notación / unidad?
update 2
el código se está ejecutando:
((10 - 0.1) * (5.0/100)).to_d
Mi prueba espera que esto sea igual (==) a:
0.495.to_f
Esto pasó bajo 1.8, falla bajo 1.9.2 y 1.9.3