我有以下公式:
SZT = SZ0 +(((SZ1 - SZ0)/(WMZ1 - WMZ0))*(WMZT - WMZ0))
示例:
86266 + (((168480 - 86266) / (703786 - 510531)) * (703765.0 - 510531))
当我使用python解释器(2.7.6)进行此计算时,我得到了这个结果:
86266
当我使用计算器(例如谷歌)时,我得到了这个结果:
168471.066239
我认为第二个是正确的结果。
Python中的计算有什么问题?
答案 0 :(得分:7)
基本上Python 2.7
和3.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