我的网站将文本文件中的数据提取到数据库中。读完数据后,我使用:
将字符串值转换为doubleoracom.Parameters.Add("nstpreisvm", OracleDbType.Double).Value = Convert.ToDouble(_material.Mat_StPreisVm);
如果我现在检查数据库中的结果,(列需要NUMBER
- 格式),我会得到两个不同的值:在我的localhost上通过Visual Studio 2010,数据库返回10,15
- 但是,如果我在网络服务器上进行处理,则数据库仅显示10
。这是怎么发生的?
我现在在网站上实施了一些标签,在页面加载中填充了当前的文化:
label.Text = Thread.CurrentThread.CurrentCulture.ToString();
两个实例的CurrentCulture
都是en-GB
,那么这里的问题是什么?我错过了什么吗?
我的本地Windows是带有德语语言包的Win7 SP1,服务器是带有标准英语安装的Win2008 R2。
答案 0 :(得分:1)
我们在客户服务器上遇到类似的问题,其中客户手动更改了该服务器上特定文化的小数分隔符号。您可以使用以下方式检查:
Thread.CurrentThread.CurrentCulture.NumberFormat.NumberDecimalSeparator
我建议您在进行解析时明确指定小数点分隔符号:
Double.Parse("1,25", new NumberFormatInfo(){ NumberDecimalSeparator = "," });