我有以下代码:
float_number = 0.01
while first_number < 0.10 do
float_number += 0.01
puts first_number
end
这导致:
0.02 0.03 0.04 0.05 0.060000000000000005 0.07 0.08 0.09 0.09999999999999999 0.10999999999999999
这是正确的。有没有一种有效的方法来确保我没有得到一堆额外的数字?
答案 0 :(得分:2)
使用BigDecimal
进行精确算术...
http://ruby-doc.org/stdlib-1.8.7/libdoc/bigdecimal/rdoc/BigDecimal.html