Float round bug in ruby?

638 ワード

ruby-1.8.7 > 1.55.round(1)
 => 1.6 
ruby-1.8.7 > 1.555.round(2)
 => 1.56 
ruby-1.8.7 > 1.155.round(2)
 => 1.16 
ruby-1.8.7 > 10.156.round(2)
 => 10.16
ruby-1.8.7 > 10.155.round(2)
 => 10.15 
ruby-1.8.7 > 10.165.round(2)
 => 10.16

 
ruby-1.9.2 > 10.155.round(2)
 => 10.15 
ruby-1.9.2 > 10.165.round(2)
 => 10.16
 
解決方法:
1.データ型からdecimalへの移行
2.
BigDecimal.new(10.155.to_s).round(2).to_f