精确打印python平均值

print python average with preicision

我希望用python打印一个数据集的平均值,并以8位小数的精度打印结果。

下面是我的代码:

1
2
3
 avg_to_print = the_sum / the_count

 print 'the average is ' +"%0.8f" % (avg_to_print)

这是为我计算正确的数字,但出于某种原因,它只显示int值(即:它将把答案显示为100而不是100.12345678)。

请帮助!

谢谢!


你应该这样做:

1
avg_to_print = float(the_sum)/the_count

它将值强制转换为浮点数,然后执行计算。在python-2.7中:

问题是,您将一个int除以一个int,得到一个被截断为100的int。因此,即使您将其格式化为具有8小数位,您仍将获得100,这是您所面临的问题。

实例

1
2
3
4
5
6
7
8
9
10
11
>>> 5/2
2

>>> 5.0/2.0
2.5

>>> 5.0/2
2.5

>>> print ("%0.8f" % (100))
100

[注意]正如@markransom指出的,您还可以执行以下操作:

1
2
3
>>> from __future__ import division
>>> 5/2
2.5