我目前正试图解析作为字符串存储在Java中一些长期价值解析长,我的问题是这样的:从Java字符串
String test = "fffff8000261e000"
long number = Long.parseLong(test, 16);
这将引发一个NumberFormatException异常:
java.lang.NumberFormatException: For input string: "fffff8000261e000"
但是,如果我敲掉字符串中的第一个'f',它会很好地解析它。
我猜这是因为这个数字很大,我通常会做的是在长的末尾放一个'L'来解决这个问题。然而,当我从字符串中解析一个long时,我无法找到解决这个问题的最佳方法。
任何人都可以提供任何建议吗?
谢谢
请注意:http://stackoverflow.com/questions/849813/large-numbers-in-java – wemu 2013-04-25 14:07:53
退房'BigDecimal',它应该能够处理大型,确切的数字没有问题。 http://docs.oracle.com/javase/1.5.0/docs/api/java/math/BigDecimal.html – Kyle 2013-04-25 14:13:37
如果您正确地发现该数字太大,您将无法解析长时间。你需要一个容量更大的数字类型。正如@wemu指出的那样,尝试将它解析为一个BigInteger。如果你仍然需要使用'BigInteger#longValue()'进行'长'尝试。 – Gamb 2013-04-25 14:13:54