2013-03-07 74 views
3

我有一堆整数,我必须在我的一个视图中显示。如何防止ToString(“0,0”)返回00

我展示他们这样说:

int myVariable = 12500; 
myVariable.ToString("0,0", System.Globalization.CultureInfo.InvariantCulture).Replace(",", " ") 

如果MYVARIABLE包含12500,它会显示:12 500这正是我想要的。

但是,如果myVariable包含0,它将显示:00.而不是00,我想要0显示。

我查看了关于自定义数字格式的MSDN,我还没有找到任何可以帮助我的东西。如果可能的话,我想不能进行更多的字符串管理(替换等)。只需将格式从0,0切换到适合我的东西即可。

+1

是什么'INT'? – Default 2013-03-07 22:48:37

+0

也许[这](http://www.csharp-examples.net/string-format-int/)可以帮助 – Default 2013-03-07 22:49:11

+0

我编辑我的问题,以取代INT。 – 2013-03-07 22:51:43

回答

7

我怀疑你想:

myVariable.ToString("#,0", ...) 

虽然我会感到惊讶,如果标准字符串格式中的一种没有处理这个问题。例如,你可以使用:

myVariable.ToString("N0", ...) 

另外请注意,而不是使用不变的文化,然后用空格代替逗号,你可以创建自己的文化(基于固定区域性的,潜在的)用的NumberGroupSeparator“ ”。

示例代码:

// You don't need to create this every time. Create it once and put it in a static variable. 
var culture = (CultureInfo) CultureInfo.InvariantCulture.Clone(); 
culture.NumberFormat.NumberGroupSeparator = " "; 

Console.WriteLine(12345.ToString("N0", culture)); // 12 345 
+1

myvariable.ToString(“N0”,...);应该诀窍。 – 2013-03-07 22:54:08

+0

@DasKrümelmonster:是的,这正是我想要的。 – 2013-03-07 22:54:38

+0

你的意思是说我可以不用替换就使用N0? – 2013-03-07 22:55:14

相关问题