Python上的Int vs Double

时间:2015-01-21 18:42:07

标签: python int double

我现在在统计课程中,我想知道如果你一次生成每个数字的数字与每个数字同时产生一个数字,那么我写了一些代码...

from random import randint
import math

total1 = 0
total2 = 0
for i in range(100000):
    temp = 0
    for j in range(7):
        temp += randint(0,9)*math.pow(10,j)
    total1 += temp
    total2 += randint(0,9999999)

print "avg1 = ", total1/100000
print "avg2 = ", total2/100000

当我运行代码时,avg1始终是小数,avg2始终是整数。我不明白为什么将total1视为双倍,因为我只添加了整数...

1 个答案:

答案 0 :(得分:2)

根据python文档,math.pow函数返回一个浮点数。这将隐式地将temp变量强制转换为float:

https://docs.python.org/2/library/math.html

因为total1被隐式地转换为float,而total2一直用作int,所以total1将返回一个小数,而total2将返回一个整数。