2017-10-09 92 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