将.csv字符串值转换为double

时间:2014-03-13 21:49:15

标签: java csv

我在从.csv文件中读取字符串数值并将它们转换为double值时遇到困难。这是代码:

String filename = "/home/mahmoud/Desktop/CSV/remake1.csv";

    BufferedReader br = null;
String line = "";
String cvsSplitBy = ",";
    int val;

try {

    br = new BufferedReader(new FileReader(filename));
    while ((line = br.readLine()) != null) {

            // use comma as separator
        String[] country = line.split(cvsSplitBy);

        val = Integer.parseInt(country[4]);

                    System.out.println(val);

    }

} catch (FileNotFoundException e) {
    e.printStackTrace();
} catch (IOException e) {
    e.printStackTrace();
} finally {
    if (br != null) {
        try {
            br.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

System.out.println("Done");
}

当我编译程序时,我得到以下错误“线程中的异常”main“java.lang.NumberFormatException:对于输入字符串:”6.55“

以下是.csv文件的内容:

2012-12-03,5.63,6.57,5.32,6.55,5816300,6.55

2012-11-01,4.66,5.68,4.37,5.59,5752000,5.59

2012-10-01,5.27,5.40,4.42,4.67,5958000,4.67

2012-09-04,5.91,6.56,5.21,5.26,5930600,5.26

关于如何解决这个问题的任何建议? 谢谢

2 个答案:

答案 0 :(得分:3)

数字格式显示它不是整数,而是双精度。

所以你应该将val声明为double:

double val;

使用以下行解析:

val = Double.parseDouble(country[4]);

答案 1 :(得分:1)

您的标题表示您想要 double ,但您使用Integer.parseInt()解析字符串,它将解析整数。请改用Double.parseDouble()来获取 double 值。