JAVA - строка преобразования (с точкой) в длинную строку - PullRequest
0 голосов
/ 18 октября 2018

У меня проблема с преобразованием строки в длинное значение.Пример:

String a = "4.0";
Long l= Long.parseLong(a);

Когда я выполняю, получаю исключение:

Exception in thread "main" java.lang.NumberFormatException: For input string: "4.0"
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
at java.lang.Long.parseLong(Long.java:589)
at java.lang.Long.parseLong(Long.java:631)
at com.tests.Test2.main(Test2.java:69)

Есть идеи?Спасибо!

Ответы [ 4 ]

0 голосов
/ 18 октября 2018

Ur code String a = "4.0";Str a is Long, это Double, если вы хотите поговорить с Long, вам сначала нужно поговорить с Double.type.U должен: Double d = Double.valueOf (a);тогда Long re = d.longValue () или используйте метод Ur. Long re = d.toLong re - конечный результат.

0 голосов
/ 18 октября 2018

Вы пытаетесь преобразовать строку с неподдерживаемым символом . в Long.Это не поддерживается https://docs.oracle.com/javase/7/docs/api/java/lang/Long.html#parseLong(java.lang.String). Попробуйте Long l = Double.valueOf(a).longValue();: https://docs.oracle.com/javase/7/docs/api/java/lang/Double.html#valueOf(java.lang.String).

0 голосов
/ 18 октября 2018

Вы также можете использовать Double.valueOf (a)

Double.parseDouble (String) вернет примитивный тип double.Double.valueOf (String) вернет объект-оболочку типа Double.

В зависимости от ваших потребностей вы можете использовать один из перечисленных выше

0 голосов
/ 18 октября 2018

4.0 не длинное значение Это двойное число, попробуйте Double.parseDouble(a)

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