如何让浮点数打印时小数点后不保留3位?
抱歉,我知道这可能是个重复的问题,但我找不到其他地方有这个内容。如果可以的话,请给我链接到原始问题,并把这个标记为重复。
我想要打印一个数字的小数点后面三位数字。
比如说:
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