だから私は浮動小数点数のリストを持っています.それらのいくつかは丸め誤差があり、フォームに表示され0.3599999
ます. それを文字列に変換して検出し、999
次の束があるかどうかを確認するのは簡単です。Pythonハッカーがこれをどのように行うのか、またはこれを行う数学的な方法があるかどうか疑問に思います.
ありがとう
だから私は浮動小数点数のリストを持っています.それらのいくつかは丸め誤差があり、フォームに表示され0.3599999
ます. それを文字列に変換して検出し、999
次の束があるかどうかを確認するのは簡単です。Pythonハッカーがこれをどのように行うのか、またはこれを行う数学的な方法があるかどうか疑問に思います.
ありがとう
Pythonのdecimalモジュールの使用を検討してください
>>> from decimal import Decimal
>>> Decimal(0.35)
Decimal('0.34999999999999997779553950749686919152736663818359375')
Numpy のassert_approx_equal()
関数も見てください:
>>> np.testing.assert_approx_equal(0.12345677777777e-20, 0.1234567e-20)
>>> np.testing.assert_approx_equal(0.12345670e-20, 0.12345671e-20,
significant=8)
>>> np.testing.assert_approx_equal(0.12345670e-20, 0.12345672e-20,
significant=8)
...
<type 'exceptions.AssertionError'>:
Items are not equal to 8 significant digits:
ACTUAL: 1.234567e-021
DESIRED: 1.2345672000000001e-021