代码之家  ›  专栏  ›  技术社区  ›  Hugo Migneron

ASP.NET服务器端区域性

  •  3
  • Hugo Migneron  · 技术社区  · 15 年前

    我有一个在美式英文ASP.NET服务器上运行的应用程序(Windows Server和.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) ?

    谢谢!

    2 回复  |  直到 15 年前
        1
  •  2
  •   jellomonkey    15 年前

    您可以通过设置来更改大多数文化信息。您需要的特定设置是:

    Thread.CurrentThread.CurrentCulture.NumberFormat.CurrencyDecimalSeparator = "."
    
        2
  •  1
  •   Eduardo Xavier    15 年前

    改变每一个变量的文化太痛苦了。 尝试使用线程区域性信息。类似:

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

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

    最好的