BigDecimal в 1,8 против 1,9

При обновлении до ruby 1.9 у меня есть провальный тест при сравнении ожидаемых и фактических значений дляBigDecimal это результат деления поплавка.

expected: '0.495E0',9(18)
got:      '0.4950000000 0000005E0',18(27)

поиск таких вещей, как "bigdecimal ruby precision" и "bigdecimal changes ruby 1.9", никуда меня не приведет.

КакBigDecimalизменение поведения в ruby 1.9?

обновление 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)>

Что означают 18 (18) и 18 (45)? Точность я представляю, но что такое обозначение / единица измерения?

обновление 2

код работает:

((10 - 0.1) * (5.0/100)).to_d

Мой тест ожидает, что это будет равно (==):

0.495.to_f

Это прошло под 1.8, терпит неудачу под 1.9.2 и 1.9.3

Ответы на вопрос(2)

Ваш ответ на вопрос