Datatype to store 20 digit number

27,788

Solution 1

BigInteger:

The BigInteger class allocates as much memory as it needs to hold all the bits of data it is asked to hold and also provides operations analogues to all of Java's primitive integer operators and for all relevant methods from java.lang.Math.

Declare it as

BigInteger bi1 =  new BigInteger("12345678900123");

Solution 2

To convert your number in base 36:

BigInteger number = new BigInteger("48565664968483514466");
String numberInBase36 = number.toString(36);
System.out.println(numberInBase36);

Solution 3

when I'm trying to use new BigInteger(number), I'm getting literal of type int is out of range

The syntax you are looking for is

BigInteger n = new BigInteger("48565664968483514466");

with the numeric literal as a String, since the primitive integer literals cannot hold a number this large.

Share:
27,788
DeepVeen
Author by

DeepVeen

Updated on July 19, 2020

Comments

  • DeepVeen
    DeepVeen almost 4 years

    I have a number of 20 digit, which datatype will support to store this number? I have tried long, double but I 'm getting out of range.

    Number = 48565664968483514466

    Then I have to convert this number to Base36 to generate the barcode.