今天我的工作遇到了一个奇怪的问题,我在解决方案上花了七个小时,但我没有单独成功。我有四台生产机器,两台有错误,两台没有。我的开发机器上不会发生错误。在下面的代码中:
//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进程后,它们现在正常运行。
但是发生了什么?
答案 0 :(得分:0)
看起来小数点分隔符变为.
。
您使用的CultureInfo
构造函数解析为this one,useUserOverride
参数位于true
。请参阅备注中如何使用此参数。
运行应用程序池的用户的语言设置是否可能已更改?