小编Qub*_*bei的帖子

你如何得到#xxxxxx颜色的色调?

如何提取"#rrggbb"给出的颜色的色调分量?

javascript colors

30
推荐指数
4
解决办法
2万
查看次数

为什么N'ko使用3位小数来显示定点("F")数字,而字面上每个其他文化使用2?

不同的文化采用不同的小数点分隔符:一个点(1.23)或逗号(1,23)或-波斯(伊朗)的情况下,-a momayyez或斜线可能会发现(1月23日.或1/23).我一直在测试我的库,它涉及大量的数字解析(TimeSpanParser),所以一直在测试.NET处理各种数字格式.

当使用"F"十进制格式或数字("N")格式输出时,除N'Ko("nqo"或"nqo-GN")外,所有文化都显示2个小数位.为什么会这样?

下面的代码示例说明了这一点,但可能没有必要理解或遵循下面的代码来回答这个问题.


简述:

Console.WriteLine((1.23456).ToString("F", new CultureInfo("en-US"))); // 1.23 (2 dp in every culture other than "nqo" and "nqo-GN")
Console.WriteLine((1.23456).ToString("F", new CultureInfo("nqo"))); // 1.235
Run Code Online (Sandbox Code Playgroud)

更详细地说:

double number = 1.2345678;

Console.WriteLine($"Testing {number.GetType().FullName}");
Console.WriteLine($"value: {number}");
foreach (var culture in new string[] { "", "en-US", "fr-FR", "fa-IR", "nqo", "nqo-GN" } ) {
    var cultureinfo = new System.Globalization.CultureInfo(culture);
    string fformat = number.ToString("F", cultureinfo);
    Console.WriteLine($"{fformat} -- {cultureinfo.EnglishName} -- \"{cultureinfo.Name}\"");
}
Run Code Online (Sandbox Code Playgroud)

输出:

Testing System.Double
value: 1.2345678
1.23 -- Invariant …
Run Code Online (Sandbox Code Playgroud)

c# localization internationalization number-formatting

9
推荐指数
1
解决办法
309
查看次数