Java Long parselong хвърля изключение на числовия формат

Имам прост код, първо използвам това

Long.parseLong(4250120140405520712)

И работи, но когато правя това

Long.parseLong(42501201404055207123)

Проваля се. Добавянето на допълнителна цифра води до изключение на числовия формат. Може ли някой да обясни, моля


person user3799365    schedule 18.09.2014    source източник


Отговори (2)


Ако приемем, че анализирате Strings в longs:

Първият работи, защото числото 4250120140405520712 (19 цифри) е по-малко от максималната възможна дълга стойност, Long.MAX_VALUE, 9223372036854775807L.

Вторият се проваля, защото е дълъг 20 цифри, по-голям от 9223372036854775807L.

person rgettman    schedule 18.09.2014
comment
и можем да използваме BigInteger, за да представим второто число - person Paraneetharan Saravanaperumal; 08.06.2015

long променливите могат да съдържат максимум 9223372036854775807 вижте тук за повече информация.
Причината втората да не работи е, че сте надхвърлили лимита, така че се показва изключението за числов формат.

person Ḟḹáḿíṅḡ Ⱬỏḿƀíé    schedule 18.09.2014