我有一个程序首先使用MAX
语句从SQL Server数据库中获取最高值。
它类似于:456.325
。我改变了"。"与","并删除每个空格。
我完全确定这个字符串可以转换为double,因为它可以在我自己的笔记本电脑上运行。
但是,当我在服务器(2008 R2)上运行该软件时,它并不起作用。我得到格式异常。我尝试了Double.ParseTo
,但我也没有。
代码:
string str = "";
double d = 0;
while (dataReader.Read())
{
str = String.Format("{0}", dataReader[0]);
}
str = str.Replace('.', ',');
str = str.Replace(" ", "");
try
{
d = System.Convert.ToDouble(str);
}
catch (Exception ex)
{
MessageBox.Show("Can't convert");
}
可以是因为服务器上的.NET版本吗?
答案 0 :(得分:2)
您的笔记本电脑和服务器上有不同的区域设置。
您必须指定文化IFormatProvider才能获得一致的结果。