Как хранить большое (10 цифр) целое число? - PullRequest
24 голосов
/ 21 декабря 2009

Какой тип данных Java сможет хранить большое числовое значение, например 9999999999?

Ответы [ 8 ]

40 голосов
/ 21 декабря 2009

Ваш конкретный пример может быть сохранен в long (или java.lang.Long, если это необходимо).

Если в какой-то момент вам нужны большие цифры, вы можете попробовать java.math.BigInteger (если целое число) или java.math.BigDecimal (если десятичное число)

30 голосов
/ 21 декабря 2009

Вы можете сохранить это в long. long может хранить значение от -9223372036854775808 до 9223372036854775807.

26 голосов
/ 17 февраля 2010

В дополнение ко всем остальным ответам я хотел бы отметить, что если вы хотите записать это число как литерал в своем коде Java, вам нужно добавить L или l, чтобы сообщить компилятору что это long константа:

long l1 = 9999999999;  // this won't compile
long l2 = 9999999999L; // this will work
8 голосов
/ 21 декабря 2009

Примитивный long или его java.lang.Long обертка также может хранить десять цифр.

6 голосов
/ 19 апреля 2014

Использовать тип данных BigInt с его неявными операциями. Плюсом для этого является то, что он не даст ответов в экспоненциальном представлении Это даст полный результат длины

Вот пример добавления

      BigInteger big1 = new BigInteger("1234567856656567242177779");
      BigInteger big2 = new BigInteger("12345565678566567131275737372777569");
      BigInteger bigSum = big1.add(big2);
      System.out.println(bigSum );
3 голосов
/ 21 декабря 2009

вы можете использовать длинный или двойной.

0 голосов
/ 31 мая 2018

Класс оболочки java.lang.Long может хранить 10 цифр легко.

   Long phoneNumber = 1234567890;

Он также может хранить больше, чем это.

Документация:

public final class Long extends Number implements Comparable<Long> {
    /**
     * A constant holding the minimum value a {@code long} can
     * have, -2<sup>63</sup>.
     */
    @Native public static final long MIN_VALUE = 0x8000000000000000L;

    /**
     * A constant holding the maximum value a {@code long} can
     * have, 2<sup>63</sup>-1.
     */
    @Native public static final long MAX_VALUE = 0x7fffffffffffffffL;
}

Это означает, что он может хранить значения диапазона 9,223,372,036,854,775,807 до -9,223,372,036,854,775,808 .

0 голосов
/ 14 октября 2013

Вы можете сохранить, создав объект, который содержит номер строкового значения для хранения в списке массивов. например: BigInt objt = new BigInt("999999999999999999999999999999999999999999999999999");

objt создается конструктором класса BigInt. Внутри класс похож.

BigInt{

ArrayList<Integer> myNumber = new ArrayList <Integer>();        

public BigInt(){}

public BigInt(String number){ for(int i; i<number.length; i++){ myNumber.add(number.indexOf(i)); } }

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...