0

だから私は浮動小数点数のリストを持っています.それらのいくつかは丸め誤差があり、フォームに表示され0.3599999ます. それを文字列に変換して検出し、999次の束があるかどうかを確認するのは簡単です。Pythonハッカーがこれをどのように行うのか、またはこれを行う数学的な方法があるかどうか疑問に思います.

ありがとう

4

2 に答える 2

2

Pythonのdecimalモジュールの使用を検討してください

>>> from decimal import Decimal
>>> Decimal(0.35)
Decimal('0.34999999999999997779553950749686919152736663818359375')
于 2013-03-18T15:15:13.760 に答える
1

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
于 2013-03-18T15:20:55.107 に答える