这对我来说很奇怪:

irb(main):012:0> "100.7".to_f.modulo(1)
=> 0.700000000000003

为什么最后是3?
irb(main):019:0> "10.7".to_f.modulo(1)
=> 0.699999999999999

同样的事情…我们只得到这个值的剩余部分除以1。应该是准确的。

最佳答案

What Every Computer Scientist Should Know About Floating-Point Arithmetic

关于ruby - 在 ruby 中,为什么“100.7” .to_f.modulo(1)= 0.700000000000003?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1296525/

10-13 02:12