-1
私は間違った結果
4099999.9999999995
は、あなたがどのようにこの計算を修正する方法を教えてもらえます。この結果を得た
a = 4.1
b = 1000000
c = 0
result = (a * b) + c
print(result)
のpython3で以下のコードを実行すると、 ?
PS。これはPythonの既知の問題ですか?
私は間違った結果
4099999.9999999995
は、あなたがどのようにこの計算を修正する方法を教えてもらえます。この結果を得た
a = 4.1
b = 1000000
c = 0
result = (a * b) + c
print(result)
のpython3で以下のコードを実行すると、 ?
PS。これはPythonの既知の問題ですか?
これはknown behaviour on python2ですが、also python3です。
文書では、値の丸めまたはdecimalモジュールの使用を推奨しています。
[浮動小数点数学は壊れていますか?](https://stackoverflow.com/questions/588004/is-floating-point-math-broken) – Phylogenesis
@Phylogenesis私はとてもありがとうございます!計算を修正する方法を教えてください。 –
はい。これはPythonの既知の問題です。また、固定長の浮動小数点数をサポートするすべてのプログラミング言語の問題。また、固定長の浮動小数点数をサポートするすべてのハードウェアを使用します。人生の悲しい事実だとしましょう...有限のスペースを持っている 実数は無限大ですが、有限数の数字をエンコードすることができます。 - 一方、16桁目の誤差は、地球 - 太陽距離を測定しているときの誤差が10μm程度に相当します。コンピュータを使用しているときにさらに精度が必要な場合は、それを持つことができます。しかしそれは珍しいことです。 – gboffi