如何使Python中的小数更准确,以便我可以计算到
0.0000000000001 * 0.0000000000000000001 = ?
我需要添加小数,如0.0000000145和0.00000000000000012314,并将它们相乘并得到确切的结果。是否有需要的代码,或者是否有模块?提前谢谢。
我需要比decimal.Decimal更精确的东西。
答案 0 :(得分:1)
不确定你为什么会被投票。
decimal.Decimal表示在基数10中使用浮点数的数字。由于它不是直接在硬件中实现,因此可以控制精度级别(默认为28位):
>>> from decimal import *
>>> getcontext().prec = 6
>>> Decimal(1) / Decimal(7)
0.142857
但是,您可能更喜欢使用mpmath module,它支持任意精度的实数和复数浮点计算:
>>> from mpmath import mp
>>> mp.dps = 50
>>> print(mp.quad(lambda x: mp.exp(-x**2), [-mp.inf, mp.inf]) ** 2)
3.1415926535897932384626433832795028841971693993751
答案 1 :(得分:0)
也许做点什么
format(0.0000000000001 * 0.0000000000000000001,'.40f')
可以更改'.40f'
以获得更高的准确性!
例如:'.70f'
或类似的东西。
这里70表示我想要70位精确度。