Pythonでこれ
を行うと、何を取得する必要があります100*0.000001
か?9.999999999999999e-05
1e-05
2 に答える
5
浮動小数点数は正確ではありません。1e-4
印刷時のように表現したりDecimal
、正確な値を取得するために使用したりできます。例えば
>>> print '{:4.0e}'.format(100*0.000001)
1e-04
また
>>> Decimal(100)*Decimal('0.000001')
Decimal('0.000100')
于 2013-03-07T16:47:55.423 に答える
0
掛け算をしないでください:
>>> 100e-7
1e-05
ただし、0.1は2進数で無限に繰り返される数値であり、他のアーティファクトの近似値がすぐに見つかることに気づきます。
>>> 100e-7*.1
1.0000000000000002e-06
次に、出力をフォーマットする際の問題に対処します。
>>> '{:e}'.format(100*0.000001)
'1.000000e-04'
>>> '{:e}'.format(100*0.0000001)
'1.000000e-05'
>>> '{:e}'.format(100*0.00000001)
'1.000000e-06'
于 2013-03-07T17:01:18.167 に答える