在逗号前打印两个数字

2 投票
2 回答
6961 浏览
提问于 2025-04-30 11:16

我想打印数字,要求小数点前有2位,后面有3位。

举个例子:

1232.352232  
9.1  

这样会显示:

32.352  
09.100  

我知道

print "%.3f" % 32.352

会让我看到小数点后有3位数字,但我该怎么做才能确保小数点前有2位数字,如果不足2位的话,前面补0呢?

暂无标签

2 个回答

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

当然可以!请把你想要翻译的内容发给我,我会帮你用简单易懂的语言解释清楚。

6

你可以为输出设置一个总宽度;如果你在前面加个0,那么这个数字会用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()函数;这个函数让你可以使用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

撰写回答