如何防止ToString("0,0")返回00

3 .net c# asp.net-mvc-3

我有一堆整数,我必须在我的一个视图中显示.

我这样显示它们:

int myVariable = 12500;
myVariable.ToString("0,0", System.Globalization.CultureInfo.InvariantCulture).Replace(",", " ")
Run Code Online (Sandbox Code Playgroud)

如果myVariable包含12500,它将显示:12 500.这正是我想要的.

但是,如果myVariable包含0,它将显示:00.而不是00,我希望显示0.

我在MSDN上查看了自定义数字格式,但我找不到任何可以帮助我的内容.如果可能的话,我希望不能再做一些字符串管理(替换等).只需将格式从0,0切换到适合我的东西.

Jon*_*eet 6

我怀疑你想要:

myVariable.ToString("#,0", ...)
Run Code Online (Sandbox Code Playgroud)

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

myVariable.ToString("N0", ...)
Run Code Online (Sandbox Code Playgroud)

另请注意,您可以使用"\n"创建自己的文化(可能基于不变文化),而不是使用不变文化,然后用空格替换逗号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
Run Code Online (Sandbox Code Playgroud)