1

在 python 中执行此操作时,100*0.000001我得到了9.999999999999999e-05 我需要做什么1e-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 是二进制中无限重复的数字,但您很快就会发现其他工件的近似值:

>>> 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 回答