2017-09-12 4 views
0

私は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) 
+2

私はそれを引き受けます'num/abase'と何か関係があります。 – Li357

+0

[divmod](https://docs.python.org/3/library/functions.html#divmod)を使用してください。 –

答えて

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 

リファレンス:

+0

ありがとうございます!私は参照をチェックアウトします。 –

関連する問題