我下面有一个大整数,叫做“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}$
假设这是python3,您使用了true division,它计算
float
结果,但是float
(基于Cdouble
)具有Pythonint
所没有的表示限制(在~2**53
之上,它不能代表每个整数值)。在当你知道这个数是可以整除的,用}-的值。如果它不是等分的,你可以向下取整,例如}类型(具有适当的精度)在单个结果类型中获得更精确的结果。在
//
来保持{5 // 3 == 1
。如果不能接受,可以使用divmod
同时计算商和余数(因此不会丢失任何信息),或者使用fractions.Fraction
类型或{相关问题 更多 >
编程相关推荐