python 除法运算不一致
Inconsistency in python division operation
我正在执行简单除法 x = a/b
,其中 a = 314159265389793240 和 b=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
我正在执行简单除法 x = a/b
,其中 a = 314159265389793240 和 b=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