Rubyで計算がずれてしまう理由と対策を教えてください。
小数点を含む割り算の計算結果が思い通りになりません。
例えば、 670 ÷ 0.67
としたとき 1000
になってほしいのですが、 999.9999999999999
となってしまいます。
$ ruby -v
ruby 2.6.3p62 (2019-04-16 revision 67580) [x86_64-darwin18]
$ irb
irb(main):001:0> 670 / 0.67
=> 999.9999999999999
Node.jsでも同じでした。
$ node
Welcome to Node.js v12.1.0.
Type ".help" for more information.
> 670 / 0.67
999.9999999999999
割り切れる数値だけ扱うプログラムなのですがうまく作れずに困っています。
こんな簡単な計算で躓くと思っていなかったので、小数を扱うときに気をつけることがいろいろありそうで不安です。
なぜこのような計算ができないのか、またどのように処理を書くのが正しいのか教えていただけると幸いです。
環境はmacOSです。