在 C# 中使用自定义千位分隔符
-
09-09-2019 - |
题
在显示字符串时,我尝试不使用“,”字符作为千位分隔符,而是使用空格。我想我需要定义一种自定义文化,但我似乎做得不对。有什么指点吗?
例如:将 1000000 显示为 1 000 000 而不是 1,000,000
(不, String.Replace()
不是我想使用的解决方案:P)
解决方案
我建议你找一个 NumberFormatInfo
其中最符合您想要的(即它与千位分隔符分开),调用 Clone()
然后设置 NumberGroupSeparator
财产。(如果您要使用货币格式设置数字格式,则需要更改 CurrencyGroupSeparator
相反/也。)使用它作为您的呼叫的格式信息 string.Format
等等,你应该没问题。例如:
using System;
using System.Globalization;
class Test
{
static void Main()
{
NumberFormatInfo nfi = (NumberFormatInfo)
CultureInfo.InvariantCulture.NumberFormat.Clone();
nfi.NumberGroupSeparator = " ";
Console.WriteLine(12345.ToString("n", nfi)); // 12 345.00
}
}
其他提示
有乔恩斯基特一个的稍微简单版本:
using System;
using System.Globalization;
class Test
{
static void Main()
{
NumberFormatInfo nfi = new NumberFormatInfo {NumberGroupSeparator = " ", NumberDecimalDigits = 0};
Console.WriteLine(12345678.ToString("n", nfi)); // 12 345 678
}
}
和“NFI”初始化可被跳过,直接把作为参数进ToString()方法
最简单的方法...
num.ToString("### ### ### ### ##0.00")
不隶属于 StackOverflow