python划分不准确

问题描述

所以我在尝试对 20 位数字进行除法时遇到了问题。

我的代码

result = 61519713751187780547/3
print(result)
print(int(result))

输出

2.0506571250395927e+19
20506571250395926528

61519713751187780547/3 的预期输出为:

20506571250395926849 
#calculated using full precision calculator at https://www.mathsisfun.com/calculator-precision.html

我对出了什么问题感到非常困惑,或者我做错了什么。输出与预期输出间的差异高达 300+。 该数字可被 3 整除,因此应给出整数结果。但不知何故,python 给出了一个浮点结果。

任何帮助将不胜感激。提前致谢!

解决方法

在 Python 3 中,/ 是浮点除法,// 是整数除法

61519713751187780547//3
Out[3]: 20506571250395926849