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 hizoBigDecimalEl 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

Respuestas a la pregunta(4)

Su respuesta a la pregunta