在不同文化中设置数字格式

发布于 2024-11-09 09:54:35 字数 398 浏览 5 评论 0原文

假设文化不变,是否可以在格式中定义与逗号不同的组分隔符?

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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

剧终人散尽 2024-11-16 09:54:35

当您有不同的格式字符串时,这并不意味着您必须使用 InvariantCulture。如果您有德国的格式字符串,例如您使用 Culture("de-de") 格式化该字符串:

String.Format(CultureInfo.GetCultureInfo( "de-de" ), "{0:0},-", 2295) //will result in 2.295,-
String.Format(CultureInfo.GetCultureInfo( "en-us" ), "{0:0},-", 2295) //will result in 2,295,-

或者您可以指定自定义 数字格式信息

NumberFormatInfo nfi = new NumberFormatInfo( )
{
    CurrencyGroupSeparator = ":"
};
String.Format(nfi, "{0:0},-", 2295) //will result in 2:295,-

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"):

String.Format(CultureInfo.GetCultureInfo( "de-de" ), "{0:0},-", 2295) //will result in 2.295,-
String.Format(CultureInfo.GetCultureInfo( "en-us" ), "{0:0},-", 2295) //will result in 2,295,-

Alternatively you can specify your custom number format info:

NumberFormatInfo nfi = new NumberFormatInfo( )
{
    CurrencyGroupSeparator = ":"
};
String.Format(nfi, "{0:0},-", 2295) //will result in 2:295,-
抹茶夏天i‖ 2024-11-16 09:54:35

正常的方法是使用不变区域性。

您确实以不变样式指定格式,但将替换正确的符号,#,##0.00 将显示为 1.234,501,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.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文