Какой тип данных я должен использовать для объявления числа, равного 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...

Другие вопросы по тегам