我试图解决一个数字数学问题,为此我需要python来处理非常小的数字。为此,我安装了mpmath。
不过,它并没有像预期的那样工作。
Mpmath能够处理1e-300但不能处理1e-400(分别为10^-300但不能处理10^-400)
在我的脑袋里
from mpmath import mp
from mpmath import mpf
mp.dps = 500
如果我打字
x = mpf(1e-300)
print(x)
我得到一个千位数的数字,接近1e-300(这是我想要的)
但是,如果我现在输入
y = mpf(1e-400)
print(y)
我得到的结果是:0.0
,这不是我想要的
我试图提高十进制精度(例如mp.dps=3000),但没有帮助,在第二种情况下我仍然得到零
有没有办法绕过这个问题,或者mpmath只是无法处理1e-400
问题是你遇到了double floating point numbers的准确性
含义从:
致:
测试
输出
相关问题 更多 >
编程相关推荐