项目场景:

使用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中对整数的长度没有限制;

∴浮点数除法/换成整数除法//即可解决“大数字除法运算结果不准确的问题”

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐