一尘不染

在C#中使用自定义的千位分隔符

c#

我试图在显示字符串时不使用’,’字符作为千位分隔符,而是使用空格代替。我想我需要定义一种自定义文化,但是我似乎并没有正确地做到这一点。有指针吗?

例如:将1000000显示为1000000,而不是1000000

(不,String.Replace()这不是我想使用的解决方案:P)


阅读 776

收藏
2020-05-19

共1个答案

一尘不染

我建议您找到一个NumberFormatInfo最符合您想要的内容(即,它与千位分隔符分开),调用Clone()它,然后设置NumberGroupSeparator属性。(如果要使用货币格式设置数字格式,则也需要更改CurrencyGroupSeparator/
更改。)将其用作调用string.Formatetc 的格式信息,应该没问题。例如:

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
    }
}
2020-05-19