如何在 C# 中使用区域性信息设置百万分隔符 (') 和千 (.)



我正在尝试将9.999.999的值转换为9'999.999使用C#中的CultureInfo,但我无法奏效。

我该怎么做?

,所以它是一个字符串,您想要第一组的不同组分离器?

您可以替换除最后一个点以外的所有:

string value = "9.999.999";
StringBuilder sb = new StringBuilder(value);
bool skippedLast = false;
for (int i = sb.Length - 1; i >= 0; i--)
{
    if (sb[i] == '.')
    {
        if (!skippedLast)
            skippedLast = true;
        else
            sb[i] = ''';
    }
}
string desiredOutput = sb.ToString(); // 9'999.999

因为用框架运送的默认IFormatProvider实现缺乏您想要/需要的功能,我建议您自己实现界面

此外,由于未密封CultureInfo,您可以将类扩展并将您的实现提供给System.Threading.Thread.CurrentThread.CurrentCulture ...所有连续的格式调用该线程都将使用您的实现(除非使用特定格式提供者来调用...(

最新更新