我们的系统中有代码可以根据用户选择的区域设置来格式化数字和货币。我们的一位用户选择了 en-ZA,并注意到随着我们迁移到 .NET 4.0,数字分组和小数分隔符发生了变化。
我写了一段代码来说明这种变化:
using System;
namespace regional
{
class Program
{
static void Main(string[] args)
{
var ci = new System.Globalization.CultureInfo("en-ZA");
var output = 1234567.00m.ToString("c", ci);
Console.WriteLine(output);
}
}
}
在 .NET 3.5 下,我们得到如下所示的输出:
R 1,234,567.00
在 .NET 4.0 下,我们得到如下所示的输出:
R 1 234 567,00
.NET 3.5 和 .NET 4.0 之间小数分隔符和数字分组发生变化的原因是什么?
根据维基百科,“当南非采用公制时,它采用逗号作为小数分隔符。” 这意味着此设置在某些时候发生了更改,但我仍然不了解为什么不同框架版本之间的行为不同。