关于python:舍入浮动到单个小数(具体问题)

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")

我的输出应四舍五入到小数点后第一位。


不要将temp转换为字符串。 将它保存为round的浮点数。 将round之后的结果转换为str进行连接

1
str(round(temp, 1))


除非这是使用圆函数的课堂作业,否则我认为不需要圆函数。

1
print ("%.1f degrees Celsius = %.1f degrees Fahrenheit" % (temp, degC))


您的操作顺序错误。 先圆,然后转换为字符串:

1
print (str(round(temp), 1)+" degrees celsius =" ...