1

Pythonでこれ を行うと、何を取得する必要があります100*0.000001か?9.999999999999999e-051e-05

4

2 に答える 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 に答える