Python Decimal 模块给出与计算器不同的数字

我想在除法结果中获得大量准确数字,例如 1/7,但 Python 给出的结果与高精度计算器不同。


我在 Python 3 中尝试了十进制库并尝试更改其精度和舍入模式,但它给出的结果与计算器不同。


from decimal import *

getcontext().prec = 40

print (Decimal(1/7))

https://keisan.casio.com/calculator 上的高精度计算器说结果是 142857 的重复模式,但 Python 的结果在 16 位后打破了这种模式。这是它给出的数字:


0.142857142857142849212692681248881854116916656494140625


吃鸡游戏
浏览 183回答 1
1回答

大话西游666

您正在使用普通浮点除法执行计算,(1/7)然后将该结果传递给Decimal,因此您试图从已经近似的东西中获得额外的精度。另一方面,如果你这样做Decimal(1)/7你会得到更精确的结果:Decimal('0.1428571428571428571428571428571428571429')
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python