3
# Fahrenheit to Celcius    
def f2c():
    userInput = tempEntry.get().lower()
    thisEquation = "Fahrenheit to Celcius"
    if userInput == "":
        textWid.insert(END,"-- " + thisEquation + " --")
        textWid.insert(END,"\n")
        textWid.insert(END,temp_equations[thisEquation])
        textWid.insert(END,"\n")
        textWid.insert(END,"\n")
    elif userInput.isdigit():
        textWid.insert(END,"Fahrenheit = ")
        textWid.insert(END,str(((float(userInput) - 32) * (5/9))))
        textWid.insert(END,"\n")
    else:
        textWid.insert(END,"Invalid entry for"+" "+thisEquation)
        textWid.insert(END,"\n")

# Fahrenheit to Kelvin
def f2k():
    userInput = tempEntry.get().lower()
    thisEquation = "Fahrenheit to Kelvin"
    if userInput == "":
        textWid.insert(END,"-- " + thisEquation + " --")
        textWid.insert(END,"\n")
        textWid.insert(END,temp_equations[thisEquation])
        textWid.insert(END,"\n")
        textWid.insert(END,"\n")
    elif userInput.isdigit():
        textWid.insert(END,"Fahrenheit = ")
        textWid.insert(END,str(((5/9)*(float(userInput) - 32) + 273.15)))
        textWid.insert(END,"\n")
    else:
        textWid.insert(END,"Invalid entry for"+" "+thisEquation)
        textWid.insert(END,"\n")

userInputは、グローバルに定義されたTkinter入力ボックスです。私の問題は2つの方程式に起因しているのではないかと強く疑っていますが、何度もそれらを作り直してみました。

私の華氏から摂氏へのコンバーターは常に0.0を返します華氏からケルビンへのコンバーターは毎回約20オフです。

ここで完全に困惑している人たち、どんな助けでも大歓迎です。

4

1 に答える 1

8

5 / 9あなたの問題です:

>>> 5 / 9
    0

Python 2では、整数を整数で割ると整数になります。数字の少なくとも1つをフロートにします。

>>> 5.0 / 9
    0.5555555555555556
>>> 5.0 / 9.0
    0.5555555555555556
于 2013-03-08T01:19:49.117 に答える