我想在精确到2之前打印数字,然后打3。
示例:
1232.352232
9.1
将显示:
32.352
09.100
我知道
print "%.3f" % 32.352
会在点后显示3位数,但是如果小于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 method和formatted 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