2014-07-03 18 views
2

我的网站从文本文件中提取数据到数据库中。读取数据后,我转换字符串值成双层,使用:同一文化,不同价值的转换

oracom.Parameters.Add("nstpreisvm", OracleDbType.Double).Value = Convert.ToDouble(_material.Mat_StPreisVm); 

如果我现在检查数据库中的结果,(该列预计NUMBER -format),我得到两个不同的值:在我本地主机通过Visual Studio 2010,数据库返回10,15 - 但是,如果我在Web服务器上进行该过程,数据库仅显示10。这是如何发生的?

我现在实现的网站上有点拉布勒,与当前的文化填充它的页面加载:

label.Text = Thread.CurrentThread.CurrentCulture.ToString(); 

CurrentCultureen-GB对于这两种情况,所以这里有什么问题吗?我错过了什么?


我的本地窗口是Win7 SP1,带有德语语言包,服务器是Win2008 R2,标准英文安装。

+1

什么是你在哪里存储这个值的列期望的类型? – Aymeric

+0

@America它是一个Oracle数据库,它期望在这一列有一个'NUMBER' – DatRid

回答

1

我们在客户服务器上有一个类似的问题,其中客户已经手动更改了该服务器上特定文化的小数点分隔符。当你做了解析

Thread.CurrentThread.CurrentCulture.NumberFormat.NumberDecimalSeparator 

我建议明确指定小数点分隔符:您可以检查此使用

Double.Parse("1,25", new NumberFormatInfo(){ NumberDecimalSeparator = "," }); 
+0

我会试试这个,仍然在会议中。但谢谢你的回答,我稍后会给你反馈! – DatRid

+0

它的工作,非常感谢!从来没有想过因为解析一个字符串我必须走这么远的路...... – DatRid