Какой тип данных я должен использовать для объявления числа, равного 12000000000 в JAVA(JDK1.7)?
После использования класса BigInteger моя программа на платформе показала превышение лимита памяти.
2 ответа
Лонг может справиться с этим значением. Не забывайте вводить L после значения. Например:
long value = 12000000000L;
С другой стороны, теоретически BigInteger не имеет ограничений, поскольку он выделяет необходимый объем памяти, а предел - доступную память. Вы должны иметь в виду, что класс BigInteger является неизменяемым, поэтому, если вы вызовете сложение, умножение, деление или что-то еще, он вернет новый BigInteger вместо изменения текущего. Вы можете рассмотреть возможность реализации вашей собственной структуры данных в соответствии с вашими потребностями. А также вы можете рассмотреть возможность размещения своего кода.
Максимальное значение, которое может сохранить long (Long.MAX_VALUE): 9,223,372,036,854,775,807
, Как вы говорите, вы хотите сохранить число, равное 12,000,000,000
должно быть абсолютно возможно сохранить его, используя long, потому что ваш номер все еще намного меньше Long.MAX_VALUE...