- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:rubyの誤差)
rubyの誤差について
このQ&Aのポイント
- rubyのプログラムで実行した際、丸め誤差が発生し、正確な値が出力されない場合があります。
- 具体的な例として、tに0.01を100回加えるプログラムを実行すると、一部の値が正確な値ではなく、丸め誤差が生じていることが確認されます。
- 丸め誤差を回避するためには、BigDecimalクラスを使用することでより正確な計算が可能です。また、出力結果を操作する際には、適切なフォーマットを適用することが重要です。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
そうですよね。 他にも方法あるのかもしれませんが、自分はBigDecimalやRational使ってます。 個人的には、1.9から組み込みになった事と記法の好みとして、Rationalを愛用してます。 BigDecimal http://ideone.com/ZfUsN Rational http://ideone.com/gxWXO Ratinalを1.8台で使うときは、require 'ratinal'を入れて下さい
その他の回答 (1)
- sholmes
- ベストアンサー率81% (89/109)
回答No.2
<追記1> すみません、1.8の時のrequire呼び出しが1文字抜けてました。 require 'rational' ですね。 <追記2> Rubyに限らずですが、丸め誤差問題ですね。 <追記3> ちなみに、1.8台で次のコード動かすともっと嫌なものが見られると思います。 #! ruby -w total = 0 10.times do total += 0.1 end p total p total == 1 p 1.0 == 1
お礼
丁寧なご回答ありがとうございました。