为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

吃鸡游戏 2021-10-19 15:20:19
我想在除法结果中获得大量准确数字,例如 1/7,但 Python 给出的结果与高精度计算器不同。我在 Python 3 中尝试了十进制库并尝试更改其精度和舍入模式,但它给出的结果与计算器不同。from decimal import *getcontext().prec = 40print (Decimal(1/7))https://keisan.casio.com/calculator 上的高精度计算器说结果是 142857 的重复模式,但 Python 的结果在 16 位后打破了这种模式。这是它给出的数字:0.142857142857142849212692681248881854116916656494140625
查看完整描述

1 回答

?
大话西游666

TA贡献1817条经验 获得超14个赞

您正在使用普通浮点除法执行计算,(1/7)然后将该结果传递给Decimal,因此您试图从已经近似的东西中获得额外的精度。

另一方面,如果你这样做

Decimal(1)/7

你会得到更精确的结果:

Decimal('0.1428571428571428571428571428571428571429')


查看完整回答
反对 回复 2021-10-19
  • 1 回答
  • 0 关注
  • 182 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号