Windows下Anaconda的Jupyter中mpmath高精度模式失效问题排查
mpmath高精度功能未失效,是Jupyter默认显示截断所致
你的mpmath高精度计算功能并没有问题,直接输出mpf对象时看到的短小数,是Jupyter Notebook对mpmath数值对象的默认显示规则导致的——它默认只展示**双精度浮点数级别(约16位小数)**的内容,但实际计算结果内部是完整保留了你设置的530位精度的。
关键验证依据
- 你用
mp.nprint(..., 50)能输出50位精度的结果,这直接证明了计算后的数值确实存储了高精度数据,只是默认显示被截断了。 - 可以通过以下代码进一步验证:
import mpmath as mp mp.dps = 530 x = mp.mpf(1)/mp.mpf(6) # 查看数值的字符串表示长度(包含整数部分、小数点和小数位) print(len(str(x))) # 输出远大于16,说明内部存储了大量高精度位数
让Jupyter默认显示高精度内容的方法
如果希望直接输出mpf对象时就能看到完整/更多精度,可以修改mpmath的输出设置:
import mpmath as mp mp.dps = 530 # 开启美观打印模式,会根据当前dps设置输出对应精度 mp.mp.pretty = True print(mp.mpf(1)/mp.mpf(6))
此时输出会展示符合你设置的530位精度的内容。
内容的提问来源于stack exchange,提问作者ShoutOutAndCalculate
相关产品推荐
相关产品推荐

