python在逗号之前打印2个数字

时间:2014-10-29 19:32:12

标签: python printing precision comma

我想在精确到2之前打印数字,然后打3。

示例:

1232.352232  
9.1  

将显示:

32.352  
09.100  

我知道

print "%.3f" % 32.352

会在点后显示3位数,但是如果小于2位,如何在点之前得到2位数字?

2 个答案:

答案 0 :(得分:3)

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

"%06.3f" % float_number

演示:

>>> for float_number in (1232.352232, 9.1):
...     print "%06.3f" % float_number
... 
1232.352
09.100

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

("%06.3f" % float_number)[-6:]

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

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

您也可以查看format() function;此功能可让您将same formatting syntax应用为str.format() formatting methodformatted string literals;浮点数的语法基本相同:

>>> 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

答案 1 :(得分:0)

x = "9,1"

def displayNum(num):
    f,s = num.strip().split(',')
    f = '0'*(2-len(f))+f if len(f) < 2 else f[-2:]
    s = s + '0'*(3-len(s)) if len(s) < 3 else s[:3]
    return ",".join([f,s])

print(displayNum(x))

09,100