使用+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))
原因在于浮点数在硬件中的存储方式。不需要太多细节,只需使用:
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)))