Как конвертировать плавающие числа CSV в удвоение в Java - PullRequest
1 голос
/ 29 января 2011

Привет, у меня есть файл CSV, который содержит строки, подобные этой

Якоп, «Помощник», 150,75

Я хочу конвертировать 3-й столбец в 150,75 в Java

Должен ли я написать функцию для этого. Или есть другой способ?

спасибо

Ответы [ 3 ]

1 голос
/ 29 января 2011

Будьте осторожны с арифметическими ошибками с плавающей точкой, но это правильная идея:

int a = Integer.valueOf("150"); // Since your numbers are coming from a CSV
int b = Integer.valueOf("75");

double c = c = (a * 100 + b) / 100.0;
=> 150.75

Обратите внимание, что значение «100» существует при условии, что ваш номер справа от десятичной дроби всегда состоит из двух цифр. Так что, если это не константа, не используйте этот ответ.

1 голос
/ 29 января 2011

Быстрая идея:

  • получить это значение в виде строки
  • заменить "," на "." в строке
  • попробуйте разобрать double с Double.parseDouble
0 голосов
/ 29 января 2011

Простой поиск и замена регулярного выражения в текстовом файле (с использованием sed или чего-либо другого) для преобразования последней запятой в десятичную точку должно работать нормально.

Затем используйте opencsv, чтобы вытащить все это:

http://opencsv.sourceforge.net/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...