如何在python中使用大整数除法获得正确的精度

2024-10-02 14:27:44 发布

您现在位置:Python中文网/ 问答频道 /正文

我下面有一个大整数,叫做“max”。为什么最大值除以“27”不等于完全忽略第一个数字“27”。从技术上讲,它们应该是相等的,但在python中却不是这样。在这个例子中,如何通过将最大值除以“27”得到相同的答案?在

max = 27*37*47*30*17*6*20*17*21*43*5*49*49*50*20*42*45*1*22*44
no27 = 37*47*30*17*6*20*17*21*43*5*49*49*50*20*42*45*1*22*44
div27 = (max/27)
modno27 = no27%40
moddiv27 = div27%40

打印的值为:

^{pr2}$

Tags: 答案数字整数max例子pr2no27modno27
1条回答
网友
1楼 · 发布于 2024-10-02 14:27:44

假设这是python3,您使用了true division,它计算float结果,但是float(基于Cdouble)具有Pythonint所没有的表示限制(在~2**53之上,它不能代表每个整数值)。在

当你知道这个数是可以整除的,用//来保持{}-的值。如果它不是等分的,你可以向下取整,例如5 // 3 == 1。如果不能接受,可以使用divmod同时计算商和余数(因此不会丢失任何信息),或者使用fractions.Fraction类型或{}类型(具有适当的精度)在单个结果类型中获得更精确的结果。在

相关问题 更多 >