为什么在Sverige-Swedish CLR 4.0中有'NaN'的奇怪表现?

时间:2017-11-02 19:13:14

标签: c# unicode nan

使用Sverige-Swedish作为操作系统的主要语言......

在dotNET 4.0的C#应用​​程序中,当我使用“G”格式调用'ToString'时,以及表示无效数字(NaN)的double上的当前文化,结果字符串不是“NaN”,因为可能是预期的。相反,我得到一个包含三个U + 00A4(“¤¤¤”)实例的字符串。

我认为瑞典语中的术语可能不是“NaN”(虽然当操作系统设置为Deutschland-German时,字符串是“NaN”)但这个Unicode字符的三元组看起来不是很像在任何语言中表示“非数字”含义的有用方法。

有人能指出我的解释吗?

1 个答案:

答案 0 :(得分:3)

这似乎是一个错误。如果您为每种文化打印代表NaN的所有字符串的列表,您会看到除瑞典语之外的所有语言在相应的语言中都有“NaN”或其他有意义的描述:

foreach (CultureInfo ci in CultureInfo.GetCultures(CultureTypes.AllCultures))
{
    Console.WriteLine(String.Format("{0}:\t {1}", ci, double.NaN.ToString("g", ci)));
}