将浮点数写入文件时,如何减少小数点后的位数?

时间:2012-05-04 20:10:48

标签: python

在我的程序中,我将浮点数打印到文件中。这些数字的精度很高,所以小数点后面有很多位数,即数字0.0433896882981。如何减少打印到文件中的位数?所以我会打印,比方说,0.043而不是0.0433896882981。

3 个答案:

答案 0 :(得分:11)

您可以使用基本字符串格式,例如:

>>> print '%.4f' % (2.2352341234)
2.2352

这里,%.4f告诉Python将精度限制为四位小数。

答案 1 :(得分:8)

你没有说出哪个版本,或者你是怎么做的,所以我假设你是3.x。

str.format("{0:.3f}", pi) # use 3 digits of precision and float-formatting.

格式说明符通常如下所示:

  

[[填补]对准] [符号] [#] [0] [最小宽度] [精度] [类型]

其他例子:

>>> str.format("{0:" ">10.5f}", 3.14159265)
'   3.14159'
>>> str.format("{0:0>10.5f}", 3.14159265)
'0003.14159'
>>> str.format("{0:<10.5f}", 3.14159265)
'3.14159   '

答案 2 :(得分:3)

可以使用以下格式指令指定小数点后的位数:

In [15]: n = 0.0433896882981
In [16]: print '%.3f' % n

产生:

0.043

% f部分表示您正在打印带小数点的数字,.3小数点后的位数。

其他例子:

In [17]: print '%.1f' % n
0.0

In [18]: print '%.2f' % n
0.04

In [19]: print '%.4f' % n
0.0434

In [20]: print '%.5f' % n
0.04339