如何在将字符串转换为long时避免android中的数字格式异常?

时间:2014-01-04 09:41:46

标签: java android

我有数据字符串数组,其中我存储了不同的字符串值,只有我要转换为long的数组的两个值,但它显示我下面的NumberFormatException是我的代码,我已经吸了。此外,Logcat在索引7和8处显示值。

方法是

private void dataSpliter(String data) 
    {
        final String[] myData= data.split("[Â]+");

        Log.e("First Name", ""+myData[0]);
        Log.e("Last Name", ""+myData[1]);
        Log.e("Father", ""+myData[2]);
        Log.e("Gender", ""+myData[3]);
        Log.e("DOB", ""+myData[4]);
        Log.e("Contact", ""+myData[5]);
        Log.e("Address", ""+myData[6]);
        Log.e("Latitude", ""+myData[7]);
        Log.e("Longitude", ""+myData[8]); 

        latitude  = (long)Long.valueOf(myData[7]);
        longitude = (long)Long.valueOf(myData[8]);
}

Logcat显示值myData[7] =34.0012143myData[8] =71.5452969

2 个答案:

答案 0 :(得分:1)

这是因为myData[7]myData[8]处的数据不包含parsable长值。调试或包含日志以查找不正确的值并进行更正。

使用double代替。

double latitude  = Double.valueOf(myData[7]);

答案 1 :(得分:1)

34.001214371.5452969不是整数,不能解析为long。

使用Double.valueOf()Double.parseDouble()将它们解析为双精度浮点数。

有些API希望看到long微度而不是double度。为此,乘以1e6并转换为long