我对Python很陌生,所以很可能会遗漏一些细微差别,但我无法理解为什么以下计算产生不同的值:
n: 0.00167322032899
Excel中
(15 / 8) * n ^ 2
5.24937425502263E-06
的Python
(15/8) * n ** 2
2.79966626935e-06
我已尝试使用括号使用复制Python的Excel结果,但无济于事。有什么指导吗?
答案 0 :(得分:9)
默认情况下,Python 2.x中的除法是整数除法。
>>> (15. / 8) * 0.00167322032899 ** 2
5.2493742550226314e-06
>>> from __future__ import division
>>> (15 / 8) * 0.00167322032899 ** 2
5.2493742550226314e-06
答案 1 :(得分:4)
在python中,15/8等于1,而在Excel中,它等于1.875。 Python 2将15和8视为整数,因此执行整数除法。你可以尝试:
(15.0/8) * n ** 2
或(15/8.0) * n ** 2
会给你5.249374255022632e-06
。
答案 2 :(得分:3)
在Python(python2)中执行15 / 8
会进行整数除法。因此,您得到1
,而Excel会将其评估为1.875
我假设你想要一个分数,所以在python中使用15.0 / 8
(或15 / 8.0
或15.0 / 8.0
)来强制分数而不是整数除法