debugging mpmath库的数量级错误?

zphenhs4  于 2023-06-23  发布在  其他
关注(0)|答案(1)|浏览(104)

the documentation of mpmath library第8页中提到
数字的大小没有限制

>>> print(mpf(2)**32582657 - 1)
1.24575026015369e+9808357

我检查了一下这个密码是否有效。然而,在同一个脚本中我发现

mp.mpf(1e309)
mpf('+inf')

这是一个bug吗?如何将mpmath库设置为任意数量级的数字?

p1iqtdky

p1iqtdky1#

不,不是窃听器。
在您的第一个代码片段中,mpf(2)**32582657将被分派到自定义的提升到幂运算符**中,该运算符将使用任意精度功能。
在第二个代码片段中,1e309是一个数字文字,它将被Python解释器解析为体系结构原生浮点数,309是一个指数,在达到mpmath之前,它会大到适合底层IEEE754格式
相反,如果你发布

mp.mpf(10)**309

你会得到预期的结果

mpf('1.0e+309')

相关问题