在C#中将字符串转换为double - 有时格式不正确

时间:2014-05-13 15:11:56

标签: c# asp.net string double

我在网页上使用asp.net和c#并尝试将文本框中的值转换为double。

这些值是纬度和经度坐标,格式正确,我使用以下代码:

double OrigLat = Convert.ToDouble(txtLatitude.Text, System.Globalization.CultureInfo.InvariantCulture);
double OrigLon = Convert.ToDouble(txtLongitude.Text, System.Globalization.CultureInfo.InvariantCulture);

在我提出类似问题之后,我会在文化信息中加入,否则它只会是:

double OrigLat = Convert.ToDouble(txtLatitude.Text);
double OrigLon = Convert.ToDouble(txtLongitude.Text);

现在,OrigLat工作正常,但是OrigLon会在一半的时间内抛出错误。由于我们操作的实际位置,经度通常是负数,但它们的长度不能超过10个字符。有趣的是,它有时可以正常工作,有时会抛出相同数字的错误。

错误是"输入字符串格式不正确"。我需要知道的双打是否有任何固有的限制?字符串肯定是数字格式。他们需要更少的小数点(最多可以达到10)吗?

1 个答案:

答案 0 :(得分:4)

我建议你使用Double.TryParse并查看为什么同一号码有时可以正常运行而且有时会失败。如果字符串可以转换,TryParse返回bool