如何在小数点后停止打印3个空格?

时间:2014-08-12 01:33:39

标签: python

对不起,我知道这一定是重复的,我找不到它张贴的地方。请随时将我链接到原始问题并将其标记为重复。

我想在小数点之后打印一个3位数的数字。 例如:

number = 523.637382

我想打印:523.637 我有一种感觉,我可以使用与此类似的东西

print(str(number)[:7])
>>>523.637

但是,如果小数点前的数字不是3位小数,则不起作用。

奖励积分: 这会容易吗?

number = 500.220
#magic
>>>500.22

number = 500.2000003
#magic
>>>500.2

3 个答案:

答案 0 :(得分:2)

可以执行此操作的(内置)函数是round

>>> number = 523.637382
>>> rounded = round(number, 3) # 3 decimal places, for example
>>> rounded
523.637

这已经回答了例如here.

回答问题第二部分的好消息是,round函数会自动删除尾随零。如果你要定义一个新变量,那么保留零会更加困难:你需要decimal模块;但看起来这不是必要的。

>>> number = 523.60000001
>>> rounded = round(number, 3)
>>> rounded
523.6

答案 1 :(得分:2)

print("%.3f" % number)

或使用新式格式

print("{0:.3f}".format(number))

答案 2 :(得分:0)

如果您正在打印上面的str,可以使用字符串插值:

number = 33.33333
print("{0:.3f}".format(number))
#=> 33.333