对不起,我知道这一定是重复的,我找不到它张贴的地方。请随时将我链接到原始问题并将其标记为重复。
我想在小数点之后打印一个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
答案 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