2017-10-09 95 views
0

我试图格式化还剩前导零和符号浮点数,但不能找到一种方法,运营商结合起来:蟒蛇格式,并签署

我需要这样的:

-153.3 --> -00000153.30 

我使用这个表达式:

"{value:0>+{width}.{precision}f}".format(value=float(-153.3), width=12, precision=2) 

但我发现了这一点: 00000-153.30

找不到正确的方法来放置“+”运算符,任何人都可以帮忙吗?

谢谢

+0

对不起,你是对的,在这个问题上得到了一个错字。 – kothvandir

回答

0

Got it!

仔细阅读doc我应该做的!

"{value:+0{width}.{precision}f}".format(value=float(-153.3), width=12, precision=2) 
1

-153.3 - > 00000153.30

如果最终数字字符串应该总是无符号的,为什么不使用abs()功能:

val=-153.3 
print("{value:0>{width}.{precision}f}".format(value=abs(val), width=11, precision=2)) 

输出:

00000153.30 
+0

对不起,预期的输出必须包括唱歌,我有一个错误的问题。 – kothvandir

1
>>> a = -153.3 
>>> str(a).zfill(10) 
'-0000153.3' 

如果你要打印的积极迹象,以及,一个解决办法是:

>>> a = +153.3 
>>> '{0:+}'.format(a).zfill(10) 
'+0000153.3' 

后者也适用于负号。

+0

抱歉,除了精度和长度必须设置为变量外,预期的输出必须包含单数。 – kothvandir

+0

@ kothvandir:你在找什么像'width = 12; '{:+。{precision} f}'。format(-153.3,precision = 2).zfill(width)'? – unutbu

+0

只需创建一个处理精度和witdh的lambda – joaquinn