【问题标题】:ASP.NET server side cultureASP.NET 服务器端文化
【发布时间】:2009-07-07 18:58:03
【问题描述】:

我有一个在英美 ASP.NET 服务器上运行的应用程序(Windows 服务器和 .NET Framework 的英文安装)。 我将全球化设置设置为:

<globalization culture="auto" uiCulture="auto" responseEncoding="utf-8"/>

这适用于大多数应用程序。但是,我必须在该应用程序中处理货币交易,并且需要提供 0.00 格式的数字(而不是 0,00)。 我们的大多数用户在使用 0,00 的文化中使用该应用程序。

我发现即使在使用 Decimal.ToString("0.00") 时,小数点在法语浏览器上仍会打印为 0,00。

处理该问题的正确方法是什么? 我是否应该更改需要处理数字的功能的当前文化以暂时将其设置为 EN-US? 如果我使用Decimal.ToString("0.00", NumberFormatInfo.InvariantInfo),我总是能得到正确的格式吗?

谢谢!

【问题讨论】:

    标签: asp.net globalization


    【解决方案1】:

    您可以通过设置更改大多数文化信息。您想要的具体设置是:

    Thread.CurrentThread.CurrentCulture.NumberFormat.CurrencyDecimalSeparator = "."
    

    【讨论】:

    • 谢谢,这正是我想要的。
    【解决方案2】:

    改变每个变量的文化太痛苦了。 尝试使用线程文化信息。比如:

    CultureInfo MyCulture = new CultureInfo("fr-FR");
    Thread.CurrentThread.CurrentCulture = MyCulture;
    

    您可以在 global.asax、用户登录或母版页级别设置此配置。

    最好的

    【讨论】:

    • 如果CurrentCulture不起作用,也可能是CurrentUICulture。
    • 我实际上不介意改变每个变量的文化,因为我只需要其中的 4 个就可以在 En-US 文化中。我真的不知道如何在变量上设置文化,你是怎么做到的?
    • 我同意 jellomonkey。正如我所说,解决方案仍然在线程级别......最好!
    猜你喜欢
    • 2011-05-16
    • 2013-07-09
    • 2013-10-10
    • 2011-01-01
    • 2012-12-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-04
    相关资源
    最近更新 更多