为什么模数会产生浮点数?

时间:2017-09-12 05:06:42

标签: python

我编写了一些代码,它采用10个基数并将其转换为不同的基数。 while循环的第一次迭代产生一个整数。所有后续迭代都会产生浮点数。为什么?它产生了正确的答案,但作为浮点。知道为什么吗?

num = 128
abase = 2
tlist = []
while num > 0:
    tcr = num%abase
    tlist.append(tcr)
    num -= tcr
    num = num / abase
print(tlist)
tlist = tlist[::-1]

temp = 0
for item in tlist:
    temp *= 10
    temp += item         

temp = str(temp)
print(temp)

1 个答案:

答案 0 :(得分:3)

  

x // y(覆盖)x和y

的商

这是因为num = num / abase除法运算符。将其更改为:num = num // abase

更新的代码:

def test():
    num = 128
    abase = 2
    tlist = []
    while num > 0:
        tcr = num%abase
        tlist.append(tcr)
        num -= tcr
        num = num // abase
    print(tlist)
    tlist = tlist[::-1]

    temp = 0
    for item in tlist:
        temp *= 10
        temp += item         

    temp = str(temp)
    print(temp)

test()

输出:

[0, 0, 0, 0, 0, 0, 0, 1]
10000000

参考: