前提・実現したいこと
PythonにおけるDecimalクラスを使用していた際に、想定外の挙動をしたので、
その原因と回避策をご教授頂ければと思い質問させて頂きました。
該当のソースコード
下記コードを実行すると、以下のような結果となります。
python
1from decimal import Decimal 2print(10 / (60 / 3600)) 3print(Decimal('10') / (Decimal('60') / Decimal('3600')))
実行結果
600.0 599.9999999999999999999999999
私の認識では、Decimalの方が正確に値を計算することができると考えておりました。
ですが、実行結果を見ると、通常のfloatの計算結果が正しく、Decimalの計算結果は正しくありません。
今後同じような事象が発生しないようにするためにも、この事象の原因と解決策を現在調査中です。
理想はDecimalで誤差なく除算などの数値計算を行いたいと考えております。
上記の事象の原因・解決策に関して、何かアドバイス等頂けますと幸いです。
よろしくお願いいたします。
補足情報(FW/ツールのバージョンなど)
Python3のオンライン実行環境で実行
Wandbox
https://wandbox.org/
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/11/22 02:06