使用Python的不同计算结果

时间:2014-06-23 07:13:49

标签: python

我有一个奇怪的案例,使用Python来获得这个计算的结果:

11.66 * 0.98 * 1.05 + 1.7 + 0.70 * 1.03

在Python中,我得到的结果是 14.41914

但是当我的客户使用他们的计算器和iPhone计算它时,他们得到的结果是 14.8300842

哪个是正确的结果? 是什么导致这个计算有不同的结果? 感谢

3 个答案:

答案 0 :(得分:10)

正确的结果是Python给你的。您的客户使用的计算器并未考虑操作顺序,或者使用计算器的方式使得操作顺序信息被丢弃。

答案 1 :(得分:7)

您的客户似乎做了以下事情:

>>> (11.66*0.98*1.05 + (1.7+0.7))*1.03
14.830084200000002
>>>

而在python中的表达式:

>>> 11.66*0.98*1.05 + 1.7+0.7*1.03
14.419140000000001

首先乘以:

>>> (11.66*0.98*1.05) + 1.7+(0.7*1.03)
14.419140000000001 

这是一个非常强大的惯例,即乘法首先完成,但桌面计算器(真实的和appy)必须在数字被打入时处理,因此可能做不同的事情。

答案 2 :(得分:2)

14.41914是对的。

<(>((((11.66 * 0.98)* 1.05)+ 1.7)+ 0.70)* 1.03)= 14.8300842

所以他们只是忽略了加法和乘法的计算顺序。