. net转换的奇怪行为.和文化

本文关键字:文化 转换 net | 更新日期: 2023-09-27 18:05:50

今天我在工作中遇到了一个奇怪的问题,我花了七个小时来解决这个问题,但我一个人并没有成功。我有四台生产机器,两台有故障,两台没有故障。在我的开发机器上没有发生错误。在下面的代码中:

//value = "120,01"
object objectValue = value;                  
objectValue = Convert.ToDecimal(value, new System.Globalization.CultureInfo("pt-BR"));
string description = string.Format("d {0} - N {1}:", value, (Convert.ToDecimal(objectValue , new System.Globalization.CultureInfo("pt-BR")).ToString(new System.Globalization.CultureInfo("pt-BR"))));
//Production two results:
//Machine 01: d 120,01 - N 120,01:
//Machine 02: d 120,01 - N 12001:

即使设置了区域性,也会出现问题。在这四台机器上关闭IIS进程后,它们现在可以正常工作了。

但是发生了什么?

. net转换的奇怪行为.和文化

看起来小数点分隔符变成了.

您使用的CultureInfo构造函数解析为此构造函数,useUserOverride参数为true。查看如何在备注中使用此参数。

运行应用程序池的用户的语言设置是否已经更改?