python 除法运算不一致

Inconsistency in python division operation

我正在执行简单除法 x = a/b,其中 a = 314159265389793240b=1。答案x完全出乎意料。 x 结果是 3.141592653897932e+17。这真是出乎意料。有没有办法以一致的方式进行除法?我正在使用 python 3.8.5.

在Python3中,/为浮点除法。您的两个操作数都被强制转换为浮点数,并且您得到了一个浮点数结果。浮点格式没有足够的精度来准确保存您的数字,因此后面的一些数字会被篡改。有关详细信息,请参阅 Is floating point math broken?

Python 3 也有一个整数除法运算符 //,如果操作数是整数,它会给出您期望的结果。

print(314159265389793240 / 1)    # 3.141592653897932e+17
print(314159265389793240 // 1)   # 314159265389793240