問題

私はPythonには非常に新しいですが、学習に非常に興味があります。 uni Pythonコースでは、一時を摂氏または華氏に変換し、最初の小数点に変換を表示するプログラムを作成します。私の問題は私の印刷ラインにあります。

私のコードでわかるように、私はconcatenating中にround()関数を使用しようとしました。プログラムを実行すると、floatをstr()に変換しようとしましたが、次のエラーが表示されます。

TypeError:型strはroundメソッドを定義しません

次の行について

プリント(ラウンド(str(temp)、1)+ "度=" + str(degF)+ "度華氏")

私のelifブロックの印刷ラインも同様です。 問題を理解し解決する助けがあれば幸いです。

 temp=float(input("Enter a temperature value to convert: "))
unit=str(input("Convert to Fahrenheit or Celsius? Enter f or c: "))

if unit=="c" or unit == "C":
    degC=(temp)
    temp=(1.8*temp)+32
    print (round(str(temp), 1) + " degrees fahrenheit = " + str(degC) + " degrees Celsius. ")
elif unit=="f" or unit == "F":
    degF=(temp)
    temp=(temp-32)/1.8
    print (round(str(temp), 1)+ " degrees celsius = " + str(degF) + " degrees Fahrenheit. ")
else:
    print("you did not enter an f or c. Goodbye ")
 

私の出力は最初の小数点以下に丸める必要があります。

  ベストアンサー

tempを文字列に変換しないでください。 roundの浮動小数点数として保つ。連結のためにroundの後の結果をstrに変換する

 str(round(temp, 1))
 

  同じタグがついた質問を見る

pythonpython-3.x