在python中格式化字符串内的整数和浮点数

时间:2012-12-17 06:41:06

标签: python string

我正在试图弄清楚如何打印格式化的字符串四舍五入到有效数字。说我有:

x = 8829834.123

我想将它四舍五入到四个sig figs,作为整数。 我试过了:

print "%4d"%x

我得到:

8829834

为什么不显示:

8829000?

我认为这就是字符串格式化的方式。

2 个答案:

答案 0 :(得分:4)

要舍入到4位有效数字:

f = float("%.4g" % 8829834.123)

将其打印为整数:

print "%.0f" % f
# -> 8830000

答案 1 :(得分:2)

Format Specifier不支持整数舍入,可能有一些解决方案,但不是开箱即用,这里有几个

>>> print "{:d}000".format(int(x/1000))
8829000
>>> print "{:d}".format(int(round(x,-3)))
8830000