1

この Python コードには、次の問題があります。結果が表示されると、結果に多数のゼロが表示されます (以下を参照)。それ以外の場合、結果は正しいです (文字列の末尾の数字)。誰でもエラーを見つけることができますか?

def menu():
    binNumber = ''
    decNumber = float(input("Enter a positive number: "))
    decNumber, binNumber = decimalToBinary(decNumber, binNumber)

    printResult(binNumber)

def decimalToBinary(dec, bin):
    while dec != 0:
        remain = dec % 2
        dec = dec / 2
        if remain > 0.5:
            bin += '1'
        else:
            bin += '0'
    return dec, bin

def printResult(binNumber):
    print("The binary notation is:", binNumber[::-1]) # the last part is to reverse the string

menu()

これは、「2」と入力した場合の結果です

バイナリ表記は次のとおりです。00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010

4

2 に答える 2

1

変化する

decNumber = float(input("Enter a positive number: "))

decNumber = int(input("Enter a positive number: "))

そして、整数除算を使用します。それ以外の

dec = dec / 2

使用する

dec = dec // 2

これらの変更により、次の出力が得られます

The binary notation is: 10
于 2013-10-05T11:36:03.060 に答える
0

@Ragnar、すべての前に、あなたのコードが間違っていることに言及する必要があります。このコードで 12 と 41 を変換しようとしましたが、失敗しました。完全なヘルプを得るには、この質問を見ることをお勧めします。

于 2013-10-05T13:24:37.393 に答える