为什么“(1/6)*(66.900009-62.852596)”评估为零?

时间:2012-04-29 18:11:56

标签: python xcode

在Objective-C(Xcode)和Python(终端)中都尝试过,(1/6)*(66.900009-62.852596)两次计算为零。有谁知道这是为什么?不应该是0.26246吗?

3 个答案:

答案 0 :(得分:11)

您正在对1/6进行整数运算,1/6的最低值为0。请改为1.0/6

答案 1 :(得分:3)

1/6是整数除法,变为0.尝试改为使用1.0/6

答案 2 :(得分:2)

避免使用整数导入进行意外分区,在模块顶部执行from __future__ import division

>>> from __future__ import division
>>> (1/6)*(66.900009-62.852596)
0.6745688333333331

future module负责启用Python 3中默认生效的功能。