ASP.NET 服务器端区域设置

3
我有一个应用程序在英语-US 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个回答

2

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

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

1

在每个变量上更改文化太痛苦了。 尝试使用线程文化信息。类似这样:

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

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

最好的


如果CurrentCulture无法工作,那么它也可能是CurrentUICulture。 - mbillard
我其实不介意将每个变量的文化背景都改为En-US,因为我只需要其中的4个。但是我不知道如何设置变量的文化背景,请问应该怎么做呢? - Hugo Migneron
我同意jellomonkey的观点。正如我所说,解决方案仍然在线程级别上...最好! - Eduardo Xavier

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接