标签: python python-2.7 printing floating-point python-3.5
有人可以在Python 2.7中详细解释原因吗
10.3 % 2.5 => 0.3
并在Python 3.0中打印0.3000000000000007(可能是由于表示问题)
0.3000000000000007
而且,10.3 % 2.5 - 0.3在两个蟒蛇中打印7.216449660063518e-16。
10.3 % 2.5 - 0.3
7.216449660063518e-16
我可以想象的错误是浮动表示,但是为什么打印行为的改变以及在将程序从2转换为3时可以采取哪些措施来避免它?
答案 0 :(得分:0)
您的问题的解决方案是使用round,这样您将始终保证预先确定浮动的准确性。所以你的等式将成为
round(10.3 % 2.5, 1)
将在所有版本中返回0.3。
0.3