преобразование строковых значений .csv в double

1

У меня возникают трудности с чтением значений номера строки из CSV файла и преобразованием их в двойные значения. Вот код:

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

любое предложение о том, как исправить эту проблему? Спасибо

Теги:
csv

2 ответа

3
Лучший ответ

Формат чисел показывает, что это не целое число, а двойное.

Поэтому вы должны объявить val как double:

double val;

И используйте следующую строку для синтаксического анализа:

val = Double.parseDouble(country[4]);
  • 0
    Вопрос гласит: «Преобразование их в двойные значения», а не с плавающей точкой.
  • 0
    Отредактировано, чтобы удвоить. Спасибо.
1

Ваше название говорит, что вы хотите удвоить, но вы разбираете свою строку с помощью Integer.parseInt(), которая будет анализировать целые числа. Double.parseDouble() этого используйте Double.parseDouble() чтобы получить двойное значение.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню