在ruby中,为什么"100.7".to_f.modulo(1)= 0.700000000000003?

Ton*_*ony 1 ruby floating-point modulo

这对我来说很奇怪:

irb(main):012:0> "100.7".to_f.modulo(1)
=> 0.700000000000003
Run Code Online (Sandbox Code Playgroud)

为什么3在最后?

irb(main):019:0> "10.7".to_f.modulo(1)
=> 0.699999999999999
Run Code Online (Sandbox Code Playgroud)

同样的事情......我们只得到这个值的余数除以1.应该是准确的.