4

在我的代码中的许多地方,我使用 ToString c 方法将值转换为货币: .ToString("c")

在我的开发机器上,这会根据我的区域设置正确格式化值,因此货币显示如下:100.00 英镑

但是在生产服务器上,它忽略了 Windows 区域设置,而是默认为基于美国的设置:

100.00 美元

我对 DateTimes 有类似的问题,但转换为 ISO 8601 格式。

生产服务器从哪里获取这个?

4

3 回答 3

3

在文件中设置适当的文化web.config

<globalization uiCulture="en-GB" culture="en-GB" />

查看这篇文章:http: //msdn.microsoft.com/en-uS/library/bz9tc508.aspx

于 2013-09-28T21:53:47.990 回答
0

您可以在 ToString 函数中强制 Culture

number.ToString("c", new CultureInfo("en-GB"))
于 2013-09-28T21:57:37.967 回答
0

我尝试了此处提到的所有其他解决方案,但一直遇到原始问题中提到的相同问题。

最后,通过更改应用程序池在 IIS 中运行的对象解决了我的问题。当设置为 LocalSystem 时,无论我将区域设置为什么或如何修改 web.config 文件,美元都会始终显示为货币。

当我将应用程序池更改为在我的机器上以任何其他交互式用户身份运行时,它立即开始反映区域设置。

于 2018-10-24T10:21:44.393 回答