В настоящее время я пытаюсь разобрать некоторые длинные значения хранятся в виде строк в Java, проблема у меня есть это:Java разбора из строки
String test = "fffff8000261e000"
long number = Long.parseLong(test, 16);
Это проливает NumberFormatException:
java.lang.NumberFormatException: For input string: "fffff8000261e000"
Однако, если я выбиваю первую «f» из строки, она разбирает ее в порядке.
Я предполагаю, что это потому, что число велико, и то, что я обычно делаю, это положить «L» на конец долгого, чтобы исправить эту проблему. Я не могу, однако, разработать лучший способ сделать это при синтаксическом анализе длинной строки.
Может ли кто-нибудь предложить какие-либо советы?
Благодаря
обратите внимание: http://stackoverflow.com/questions/849813/large-numbers-in-java – wemu
Проверьте 'BigDecimal', он должен быть в состоянии обрабатывать большие , точные числа не проблема. http://docs.oracle.com/javase/1.5.0/docs/api/java/math/BigDecimal.html – Kyle
Если, как вы правильно заметили, число слишком велико, вы не сможете разобрать длинные , Вам понадобится числовой тип с более высокой пропускной способностью. Как указывает @wemu, попробуйте разобрать его в «BigInteger». Если вам по-прежнему нужен «длинный», попробуйте использовать «BigInteger # longValue()». – Gamb