为什么Long.parseLong最多只能转换19位数字,Long最大不是64位么?

我有一个36位数字的字符串,我想把它转化为Long类型,但是每次转换(Long.parseLong)都会报错


Exception in thread "main" java.lang.NumberFormatException: For input string: "10010111811111111111"

    at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)

    at java.lang.Long.parseLong(Long.java:592)

    at java.lang.Long.parseLong(Long.java:631)

我反复试验后,发现最多只能转换19位的数字,这是为什么啊??


莫回无
浏览 3923回答 3
3回答

largeQ

long类型的最大值是9223372036854775807,刚好长度是19个数字。你说的64位 应该说的是2的64次方。

守着一只汪

long的64位是二进制的64位,你说的19位是19个字符
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java