变量总是四舍五入到小数点后两位 - Python

时间:2014-08-19 16:51:15

标签: python variables precision epoch milliseconds

我从2D数组中得到一个浮点数,当我通过它调试时,数字在数组中显示为1406711403.588。我得到像这样的变量

t = array_name [0] [0]

并且t变为1406711403.59,无论我使用什么格式或圆形方法,它总是这样。我在终端试了一下:

>>> t = round(1406711403.588, 3)
>>> print t
1406711403.59
>>> t = round(1406711403.588, 2)
>>> print t
1406711403.59
>>> round(1406711403.588, 3)
1406711403.588
>>> 

为什么它总是将它四舍五入到小数点后两位?如何保持原始精度?

非常感谢!

1 个答案:

答案 0 :(得分:3)

这与print而非round有关。试试这个:

>>> round(1406711403.588, 3)
1406711403.5880001
>>> print round(1406711403.588, 3)
1406711403.59
除非您指定其他内容,否则

print会自动进行舍入。您可以指定小数点数,如下所示:

>>> print "%.3f" % (round(1406711403.588, 3))
1406711403.588
>>> print "%.5f" % (round(1406711403.588, 3))
1406711403.58800