我有一个奇怪的案例,使用Python来获得这个计算的结果:
11.66 * 0.98 * 1.05 + 1.7 + 0.70 * 1.03
在Python中,我得到的结果是 14.41914
但是当我的客户使用他们的计算器和iPhone计算它时,他们得到的结果是 14.8300842
哪个是正确的结果? 是什么导致这个计算有不同的结果? 感谢
答案 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所以他们只是忽略了加法和乘法的计算顺序。