Rounding float to single decimal (specific problem)
我是Python的新手,但对学习非常感兴趣。 对于uni Python课程,我将创建一个将temp转换为Celsius或Fahrenheit的程序,并将转换显示到第一个小数位。 我的问题在于我的印刷线。
正如您在我的代码中看到的,我尝试在连接时使用round()函数。 虽然我试图将浮点数转换为str(),但是当我运行程序时,我会收到以下错误。
TypeError:type str不定义round方法
对于以下行
print(round(str(temp),1)+"degrees celsius ="+ str(degF)+"degree Fahrenheit。")
同样对于我的elif集团的印刷线。
任何帮助理解和解决问题将不胜感激。
1 2 3 4 5 6 7 8 9 10 11 12 13 | 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") |
我的输出应四舍五入到小数点后第一位。
不要将
1 | str(round(temp, 1)) |
除非这是使用圆函数的课堂作业,否则我认为不需要圆函数。
1 | print ("%.1f degrees Celsius = %.1f degrees Fahrenheit" % (temp, degC)) |
您的操作顺序错误。 先圆,然后转换为字符串:
1 | print (str(round(temp), 1)+" degrees celsius =" ... |