为什么我从Python Interpreter(2.7.6)和计算器得到不同的结果?

时间:2017-07-28 09:44:57

标签: python calculation

我有以下公式:

  

SZT = SZ0 +(((SZ1 - SZ0)/(WMZ1 - WMZ0))*(WMZT - WMZ0))

示例:

86266 + (((168480 - 86266) / (703786 - 510531)) * (703765.0 - 510531))

当我使用python解释器(2.7.6)进行此计算时,我得到了这个结果:

86266

当我使用计算器(例如谷歌)时,我得到了这个结果:

168471.066239

我认为第二个是正确的结果。

Python中的计算有什么问题?

2 个答案:

答案 0 :(得分:7)

基本上Python 2.73.3计算彼此不同。

Python 3.3为0.1返回1/10,而Python 2.7返回0。您可以使用__future__

启用新的除法运算符
>>> from __future__ import division
>>> print(86266 + (((168480 - 86266) / (703786 - 510531)) * (703765.0 - 510531)))
168471.066239

答案 1 :(得分:-1)

它与python版本和devision运算符

有关

示例:

使用2.7:

Python 2.7.13 |Continuum Analytics, Inc.| (default, Dec 20 2016, 23:05:08)
[GCC 4.2.1 Compatible Apple LLVM 6.0 (clang-600.0.57)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
Anaconda is brought to you by Continuum Analytics.
Please check out: http://continuum.io/thanks and https://anaconda.org

x = 86266 + (((168480 - 86266) / (703786 - 510531)) * (703765.0 - 510531))

print(x)


86266.0

使用python 3.3:

x = 86266 + (((168480 - 86266) / (703786 - 510531)) * (703765.0 - 510531))

print(x)

168471.066239