读书人

string转decimail部类本机调试不报错

发布时间: 2012-09-14 23:00:49 作者: rapoo

string转decimail类型本机调试不报错,发布后无法添加数据,报错
开发环境和IIS服务器都是.NET 3.5环境,使用decimail.parse 或convert.todecimal 都不行,得到的是"0.5" string 类型的数据,本机转换都正常,发布了就不行了,只有小数不行,有什么解决办法吗?

[解决办法]
不同的服务器数据格式设置是不同的,你可以到控制面板里面的区域设置看看

你可以参照下面的例子设置固定的NumberFormatInfo试试

C# 解析任意格式的数字字符串

在.NET中, NumberFormatInfo 类是用来设置数字格式的,有了这个类,我们就可以正确解析任意格式的数字字符串。NumberGroupSeparator 属性用来获取或设置在数值中对小数点左边数字进行分组的字符串。NumberDecimalSeparator 属性获取或设置在数值中用作小数点分隔符的字符串。下面是几个例子,通过运行例子,就可以明白其工作原理了。
C# 代码

C# code
//NumberGroupSeparator : 获取或设置在数值中对小数点左边数字进行分组的字符串。//NumberDecimalSeparator : 获取或设置在数值中用作小数点分隔符的字符串。String num1 = "123,456,789";String num2 = "123|456|789";String num3 = "123.456.789";String num4 = "123,456.789";String num5 = "123.456,789";System.Globalization.NumberFormatInfo nfi = new System.Globalization.NumberFormatInfo();nfi.NumberGroupSeparator = ",";int x1 = int.Parse(num1, System.Globalization.NumberStyles.AllowThousands, nfi);nfi.NumberGroupSeparator = "|";int x2 = int.Parse(num2, System.Globalization.NumberStyles.AllowThousands, nfi);nfi.NumberGroupSeparator = ".";int x3 = int.Parse(num3, System.Globalization.NumberStyles.AllowThousands, nfi);nfi.NumberGroupSeparator = ",";nfi.NumberDecimalSeparator = ".";Decimal x4 = Decimal.Parse(num4,nfi);nfi.NumberGroupSeparator = ".";nfi.NumberDecimalSeparator = ",";Decimal x5 = Decimal.Parse(num5, nfi);Response.Write("<li>" + x1);Response.Write("<li>" + x2);Response.Write("<li>" + x3);Response.Write("<li>" + x4);Response.Write("<li>" + x5); 

读书人网 >C#

热点推荐