2017-01-18 17 views
-4

Невозможно разобрать ниже номера.Получение номера формата excpetion

Long.parseLong("1000.00".length() > 0 ? "1000.00" : "0") 

При анализе «1000,00», после чего возникает исключение формата номера.

Как разобрать «1000,00» эту строку длинным в java?

+4

Длинные не имеют десятичных точек. –

+1

'long' являются целыми числами. '' 1000 "' будет работать. '' 1000.00 "' имеет дробную часть (которая равна нулю, но все же), что не будет. –

+0

Почему его downvoted? –

ответ

5

long s являются целыми числами. "1000" будет работать. "1000.00" имеет дробную часть (которая равна нулю, но все же), что не будет.

Как разобрать «1000,00» эту строку длинным в java?

В общем случае вы не можете; a long не может хранить дробную часть.

Теперь в вашем конкретном примере, то дробная часть равна нулю, так что вы могли просто удалить его:

long result = Long.parseLong("1000.00".split("\\.")[0]); 

Или вы можете разобрать его как двойной, а затем обрезает его:

long result = (long)Double.parseDouble("1000.00"); 

... но опять же, просто остерегайтесь, что long является интегральным типом, который не поддерживает дробные значения.

+0

Весь код вздор. Почему он не использует фактическую «длину» строки, и это все ... –

0

удалить точку или дробную часть этой строки, Длинным фактически является целым числом с 64 разрядности ...

System.out.println(Long.parseLong("1000.00".length() > 0 ? "1000" : "0")); 
0
(long)Double.parseDouble("1000.00".length() > 0 ? "1000.00" : "0")