Ruby中怎么解决Float型十进制小数运算问题

casoc 发布于 2014/07/30 17:50
阅读 305
收藏 0
在Ruby和Java中,Float类形为了运算的迅速使用了二进制小数来近似表示十进制小数,这就存在圆整错误,如0.3-0.2==0.1返回false,Java中可以用BigDecimal类型解决,Ruby要怎么解决呢?
加载中
0
tsl0922
tsl0922

ruby 也一样有 BigDecimal 类型的,只不过不在核心标准库中而已:

tsl0922s-air:~ tsl0922$ irb
1.9.3-p545 :001 > require 'bigdecimal'
 => true 
1.9.3-p545 :002 > BigDecimal.new('0.3') - BigDecimal.new('0.2') == BigDecimal.new('0.1')
 => true 
1.9.3-p545 :003 >
casoc
casoc
感谢楼上
返回顶部
顶部