Java NumberformatException с CSV дълго конвертиране

Опитвам се да импортирам CSV файл в Java, но когато достигна стойността на клеймото за време (например: 135824328205), получавам следното съобщение:

02-25 10:40:48.629: W/System.err(23341): java.lang.NumberFormatException: 1.35998E+12

Бих искал да го запазя като дълга стойност, но не работи, ето моят код:

in.setTS(Long.parseLong(dataArray[2]));

Може ли някой да ми помогне? Благодаря.


person Karoly    schedule 25.02.2013    source източник
comment
Какво е съдържанието на dataArray[2]?   -  person vikingsteve    schedule 25.02.2013
comment
1.35998E+12 не е дълго   -  person PermGenError    schedule 25.02.2013
comment
@PremGenError: не е. но ако отворя csv с бележник, виждам дългата стойност там   -  person Karoly    schedule 25.02.2013
comment
Какво е съдържанието на dataArray[2] и как го получавате от CSV файла?   -  person matt freake    schedule 25.02.2013
comment
съдържание на dataArray[2] = 1360331885000, това е низ   -  person Karoly    schedule 25.02.2013
comment
Изглежда, че нещо преобразува обикновената целочислена стойност във вашия файл в експоненциален низ. Можете да използвате отговора по-долу, за да анализирате експоненциални стойности. Или ако сте любопитни, проследете каквото и да преобразува стойността ви.   -  person matt freake    schedule 25.02.2013


Отговори (2)


Както можете да видите тук:

in.setTS(Double.valueOf(dataArray[2]).longValue());

в случай, че dataArray[2] съдържа съответната експоненциална нотация като низ

BigInteger също може да ви помогне тук .

person BobTheBuilder    schedule 25.02.2013

За огромни числа е много полезно да използвате BigInteger

BigInteger value = new BigInteger(dataArray[2], 10);

Ако приемем, че dataArray[2] е низ

Вижте документация

person asifsid88    schedule 25.02.2013