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

Why do I get different results from Python Interpreter (2.7.6) and a calculator?

我有以下公式:

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

示例:

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

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

86266

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

168471.066239

我假设第二个是正确的结果。

Python中的计算有什么问题?

基本上Python 2.73.3的计算是不同的。

Python 3.3 return 0.1 对于 1/10,而 Python 2.7 return 0。您可以使用 __future__

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

与python版本和除法运算符有关

示例:

使用 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