如何让浮点数打印时小数点后不保留3位?

0 投票
3 回答
3427 浏览
提问于 2025-04-18 16:55

抱歉,我知道这可能是个重复的问题,但我找不到其他地方有这个内容。如果可以的话,请给我链接到原始问题,并把这个标记为重复。

我想要打印一个数字的小数点后面三位数字。

比如说:

number = 523.637382

我想打印:523.637。我觉得我可以用类似这样的方式。

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

不过,如果小数点前面的数字不是三位的话,这个方法就不行了。

附加问题: 这样做简单吗?

number = 500.220
#magic
>>>500.22

number = 500.2000003
#magic
>>>500.2

3 个回答

0

如果你像上面那样打印一个 str(字符串),你可以使用字符串插值的方式:

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

或者,使用新的格式化方式,

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

一个可以做到这一点的内置函数是 round

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

这个问题已经有人回答过了,比如可以在 这里找到答案。

好消息是,针对你问题的第二部分,round 函数会自动去掉多余的零。如果你想保留这些零,那就比较麻烦了,需要用到 decimal 模块;但在这里似乎并不需要这样做。

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

撰写回答