超出范围将字符串转换为十进制时

时间:2014-04-29 03:05:28

标签: c# .net

这很简单,我试图将字符串纬度和经度坐标转换为小数,我的代码:

decimal[] latlong = decimal[1];
latlong[0] = Convert.ToDecimal(location["lat"].ToString()); // works with "41.6674920"
latlong[1] = Convert.ToDecimal(location["lng"].ToString()); // ex. with ""-87.6831190"

抛出的异常超出范围异常,我不确定是否因为Decimal太长,或者是负数???我不知道,这真的没有意义

2 个答案:

答案 0 :(得分:4)

您正在声明一个大小为1的数组,但尝试分配2个元素。那是一个错误。此外,您还需要new关键字。所以只需将其改为此即可消除错误:

decimal[] latlong = new decimal[2];

答案 1 :(得分:1)

您的latlong数组仅使用一个元素创建,但您尝试使用latlong[1] = ...

访问第二个元素

更改

decimal[] latlong = decimal[1];

decimal[] latlong = decimal[2];