如果我用python写1e-15,python可以区分这个数字和0,但是如果我写1e-16,python就不能区分这个数字和0。所以python的精确度可以达到16位。有没有办法将精度降低到例如10位数?多么?我能不能用一些
谢谢你的帮助。
发布于 2019-10-07 01:34:23
如果您希望在计算中使用精确的算术运算,强烈建议您使用默认的float类型。请参阅官方文档的Floating Point Arithmetic: Issues and Limitations部分。
这就是为什么你使用decimal module会更好的原因。它有几种方法来控制精度。
在这里,我们全局地更改精度:
>>> from decimal import *
>>> getcontext().prec = 6
>>> Decimal(1) / Decimal(7)
Decimal('0.142857')
>>> getcontext().prec = 28
>>> Decimal(1) / Decimal(7)
Decimal('0.1428571428571428571428571429')我们在这里为一个数字做这个:
>> Decimal('0.1428571428571428571428571429').quantize('0.01')
Decimal('0.14')你可以找到更多的例子in the docs。
https://stackoverflow.com/questions/58259566
复制相似问题