python在逗号前打印2个数字

Seb*_*n B 2 python printing precision comma

我想将数字精确到点前 2 位和点后 3 位。

例子:

1232.352232  
9.1  
Run Code Online (Sandbox Code Playgroud)

将会呈现:

32.352  
09.100  
Run Code Online (Sandbox Code Playgroud)

我知道

print "%.3f" % 32.352
Run Code Online (Sandbox Code Playgroud)

将在点后显示 3 位数字,但是如果小于 2 位数字,如何在 0 点前获得 2 位数字?

Mar*_*ers 6

您可以指定输出的总宽度;如果包含前导 0,则数字将用零填充以匹配最小宽度:

"%06.3f" % float_number
Run Code Online (Sandbox Code Playgroud)

演示:

>>> for float_number in (1232.352232, 9.1):
...     print "%06.3f" % float_number
... 
1232.352
09.100
Run Code Online (Sandbox Code Playgroud)

请注意,数字是最小宽度!如果您需要截断浮点数本身,则需要使用切片:

("%06.3f" % float_number)[-6:]
Run Code Online (Sandbox Code Playgroud)

如果长度超过 6,这将截断字符串以从开头删除字符:

>>> for float_number in (1232.352232, 9.1):
...     print ("%06.3f" % float_number)[-6:]
... 
32.352
09.100
Run Code Online (Sandbox Code Playgroud)

你可能也想看看这个format()函数;该功能允许用户应用相同的格式语法str.format()格式化方法格式化字符串文字; 浮点数的语法基本相同:

>>> for float_number in (1232.352232, 9.1):
...     formatted = format(float_number, '06.3f')
...     print(formatted[-6:], formatted)
...
32.352 1232.352
09.100 09.100
Run Code Online (Sandbox Code Playgroud)