Python中“大数字除法运算结果不准确的问题”——使用整数除法
·
项目场景:
使用Python时,对大数字进行除法,最终结果和预期不一致
问题描述
对数字进行除法运算
#eg:对大数278675673186014704连续进行2次除法
i = 278675673186014704
print(i / 2)
print(i / 2 / 2)
运算结果为:
并不是预期的:69668918296503701
解决方案:
把运算符中的 / 都换成 //
#eg:对大数278675673186014704连续进行2次除法
i = 278675673186014704
print(i // 2)
print(i // 2 // 2)
结果为:
原因分析:
区分:浮点数除法、整数除法
/ :是浮点数除法(float)。处理完的数字会变成float类型。这可能会导致精度有问题,尤其在处理数字过大的时候
∵Python对float的有效精度有限制,通常保存15到16位有效数字;
// :是整数乘除法(int)。示例中需要进行运算的是整数,Python中对整数的长度没有限制;
∴浮点数除法/换成整数除法//即可解决“大数字除法运算结果不准确的问题”
更多推荐



所有评论(0)