10.3%2.5打印0.3或0.3000000000000007

时间:2016-02-21 04:39:54

标签: python python-2.7 printing floating-point python-3.5

有人可以在Python 2.7中详细解释原因吗

10.3 % 2.5 => 0.3

并在Python 3.0中打印0.3000000000000007(可能是由于表示问题)

而且,10.3 % 2.5 - 0.3在两个蟒蛇中打印7.216449660063518e-16

我可以想象的错误是浮动表示,但是为什么打印行为的改变以及在将程序从2转换为3时可以采取哪些措施来避免它?

1 个答案:

答案 0 :(得分:0)

您的问题的解决方案是使用round,这样您将始终保证预先确定浮动的准确性。所以你的等式将成为

round(10.3 % 2.5, 1)

将在所有版本中返回0.3