2012-07-19 60 views
3

我試圖與領先的空間格式化一個數值,收拾串出給定長度,從而: -格式數字值

mystring = mynumber.ToString ("format-string") 

但我有沒有運氣找到正確的格式串。我已經看到here這個問題,並嘗試提出了這個答案,但它不起作用。對於123.4,

.ToString ("####.#")  gets "123.4" 
.ToString ("6:####.#")  gets "6:123.4" 
.ToString ("0,6:####.#") gets "06:0,123.4" 
.ToString ("{####.#}")  gets "{123.4}" 
.ToString ("{6:####.#}") gets "{6:123.4}" 
.ToString ("{0,6:####.#}") gets "{06:0,123.4}" 

有什麼我可以嘗試獲得" 123.4"

+0

你總是希望1個領先的空間,或者你想要的字符串填充到一定的長度? – Jodrell 2012-07-19 10:15:14

+0

@Jodrell,我想要字符串填充到一定的長度;對不起,我沒有說清楚。 – 2012-07-19 10:16:00

+0

需要說明的是,提問者似乎奇怪地不願陳述的「確定長度」是6. – cja 2015-06-23 16:45:52

回答

8

不能使用ToString方法爲該格式,您需要使用String.Format方法:

String.Format("{0,6:####.#}", number) 
+0

您確定這有所作爲嗎? – Jodrell 2012-07-19 10:20:18

+0

@Jodrell:是的。 「,6」部分不能與ToString一起使用,因爲沒有要附加的索引。 ToString方法只使用格式字符串本身,即冒號後面的部分。 – Guffa 2012-07-19 10:23:21

+0

@Guffa,謝謝。我開始懷疑這樣的事情。 – 2012-07-19 10:34:05