提问人:Sal 提问时间:1/5/2023 更新时间:1/5/2023 访问量:35
我返回的平均值在小数位方面看起来不正确 (Python) [重复]
My returned average does not look right in terms of decimal places (Python) [duplicate]
问:
我返回的平均值在小数点后位置使用+str作为变量看起来不正确。
我下面的代码应该提供 25.83,但我得到 25.830000000002
total_bmi = 0
for bmi in bmis:
total_bmi += float(bmi)
average_bmi = total_bmi/len(bmis)
print("Average BMI: " + str(average_bmi))
答:
-1赞
madhurkant
1/5/2023
#1
其原因是浮点数在硬件中的存储方式。无需赘述,只需使用:
total_bmi = 0
for bmi in bmis:
total_bmi += float(bmi)
average_bmi = total_bmi/len(bmis)
print("Average BMI: " + str(round(average_bmi, 2)))
评论
1赞
Mark Dickinson
1/5/2023
不要用于此目的;使用字符串格式。这就是它的用途。.或。round
print(f"Average BMI: {average_bmi:.2f}")
print("Average BMI: {:.2f}".format(average_bmi))
评论