. 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进程后,它们现在可以正常工作了。
但是发生了什么?
看起来小数点分隔符变成了.
您使用的CultureInfo
构造函数解析为此构造函数,useUserOverride
参数为true
。查看如何在备注中使用此参数。
运行应用程序池的用户的语言设置是否已经更改?