BigDecimal em 1,8 vs. 1,9
Quando atualizando para o ruby 1.9, tenho um teste de falha ao comparar os valores reais esperados x reais para umBigDecimal
é o resultado da divisão de um flutuado
expected: '0.495E0',9(18) got: '0.4950000000 0000005E0',18(27)
googling para coisas como "precisão de rubi bigdecimal" e "mudanças ruby 1.9 de bigdecimal" não está me levando a lugar nenhu
ComoBigDecimal
mudança de comportamento de @ no 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)>
O que significa 18 (18) e 18 (45)? Precisão, imagino, mas qual é a notação / unidade?
update 2
o código está sendo executado:
((10 - 0.1) * (5.0/100)).to_d
Meu teste espera que isso seja igual (==) a:
0.495.to_f
Este passou em 1.8, falha em 1.9.2 e 1.9.3