python除法运算不一致

问题描述

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

解决方法

在 Python 3 中,123 是浮点除法。你的两个操作数都被强制为浮点数,你得到一个浮点数结果。浮点格式没有足够的精度来准确保存您的数字,因此后面的一些数字会被篡改。有关详情,请参阅 Is floating point math broken?

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

//