在不同文化中设置数字格式
假设文化不变,是否可以在格式中定义与逗号不同的组分隔符?
Thread.CurrentThread.CurrentCulture = CultureInfo.InvariantCulture;
Console.WriteLine(String.Format("{0:#,##0}", 2295));
输出:
2,295
期望的输出:
2.295
不变的区域性是一项要求,因为来自许多不同语言环境的货币正在使用用户定义的格式字符串进行格式化。例如,对于丹麦,他们将价格格式定义为“{0:0},-”,而对于爱尔兰,则可能是“€{0:#,##0}”。
Assuming an invariant culture, is it possible to define a different group separator in the format - than the comma?
Thread.CurrentThread.CurrentCulture = CultureInfo.InvariantCulture;
Console.WriteLine(String.Format("{0:#,##0}", 2295));
Output:
2,295
Desired output:
2.295
The invariant culture is a requirement because currencies from many different locales are being formatted with format strings, that have been user defined. Ie for Denmark they have defined the price format to be "{0:0},-", while for Ireland it might be "€{0:#,##0}".
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
当您有不同的格式字符串时,这并不意味着您必须使用 InvariantCulture。如果您有德国的格式字符串,例如您使用 Culture("de-de") 格式化该字符串:
或者您可以指定自定义 数字格式信息:
When you have different format strings, this does not mean that you have to use InvariantCulture. If you have a format string for germany e.g. you format this string using the Culture("de-de"):
Alternatively you can specify your custom number format info:
正常的方法是不使用不变区域性。
您确实以不变样式指定格式,但将替换正确的符号,
#,##0.00
将显示为 1.234,50 或 1,235.50< /strong> 取决于实际使用的文化。The normal approach would be to not use an Invariant culture.
You do specify the formatting in Invariant style, but the proper symbols would be substituted,
#,##0.00
will come out as 1.234,50 or as 1,235.50 depending on the actual culture used.