2012-07-19 88 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