我希望在python中打印数据集的平均值,并且结果打印的精度为8位小数。
现在是我的代码:
avg_to_print = the_sum / the_count
print 'the average is ' + "%0.8f" % (avg_to_print)
这是为我计算正确的数字但由于某种原因它只显示int值(IE:它会将答案显示为100而不是100.12345678)。
请帮忙!
谢谢!
答案 0 :(得分:3)
你应该这样做:
avg_to_print = float(the_sum)/the_count
它将值转换为浮点值,然后执行计算。
在python-2.7
:
问题在于你将int除以int并得到一个被截断为100
的int。因此,即使您将其格式化为8
小数位,您仍然会得到100
这就是您遇到的问题。
>>> 5/2
2
>>> 5.0/2.0
2.5
>>> 5.0/2
2.5
>>> print ("%0.8f" % (100))
100
[注意]正如@MarkRansom指出的那样,您还可以执行以下操作:
>>> from __future__ import division
>>> 5/2
2.5