Не сломан ли класс BigDecimal? Кажется, что никогда не должно происходить следующее:
Обратите внимание, что a.to_f! = A.to_s.to_f
класс A.class
=> BigDecimal
a.to_f
=> 18658.1072928
a.to_s
=> "10865.81072928"
b.class
=> BigDecimal
b.to_f
=> 10000,0
b.to_s
=> "10000.0"
(a - b) .to_f
=> 865,81072928
a.to_f - b.to_f
=> 8658.1072928
Есть идеи, что может пойти не так? Мы запускаем ruby 1.8.7p72 на наших серверах и 1.8.7p173 на наших локальных машинах.