BigInteger add() Method in Java with Examples - GeeksforGeeks

04 Apr, 2019
The java.math.BigInteger.add(BigInteger val) is used to calculate the Arithmetic sum of two BigIntegers. This method is used to find arithmetic addition of large numbers of range much greater than the range of biggest data type double of java without compromising with the precision of the result. This method performs an operation upon the current BigInteger by which this method is called and BigInteger passed as the parameter.
Syntax:
public BigInteger add(BigInteger val)

Parameters: This method accepts a parameter val which is the value to be added to this BigInteger.
Return value: This method returns a BigInteger which holds sum (this + val).
Below programs is used to illustrate the add() method of BigInteger.
Example 1:
// Java program to demonstrate// add() method of BigInteger  import java.math.BigInteger;  public class GFG {    public static void main(String[] args)    {        // BigInteger object to store result        BigInteger sum;          // For user input        // Use Scanner or BufferedReader          // Two objects of String created        // Holds the values to calculate the sum        String input1            = "5454564684456454684646454545";        String input2            = "4256456484464684864864864864";          // Convert the string input to BigInteger        BigInteger a            = new BigInteger(input1);        BigInteger b            = new BigInteger(input2);          // Using add() method        sum = a.add(b);          // Display the result in BigInteger        System.out.println("The sum of\n"                           + a + " \nand\n" + b + " "                           + "\nis\n" + sum + "\n");    }}
Output:
The sum of5454564684456454684646454545and4256456484464684864864864864is9711021168921139549511319409
As you can see from above example the data is full precised even after adding number of very large length.
Example 2:
// Java program to demonstrate// add() method of BigInteger  import java.math.BigInteger;  public class GFG {    public static void main(String[] args)    {        // BigInteger object to store result        BigInteger sum;          // double variable        // To store result as double        double d;          // For user input        // Use Scanner or BufferedReader          // Two objects of String        // Holds the values to sum          // The number's length is of 400 digits        // Which is out of range of double        String input1 = "012345678901234567"                        + "8901234567890123"                        + "4567890123456789"                        + "0123456789012345"                        + "6789012345678901"                        + "2345678901234567"                        + "8901234567890123"                        + "4567890123456789"                        + "0123456789012345"                        + "6789012345678901"                        + "2345678901234567"                        + "8901234567890123"                        + "4567890123456789"                        + "0123456789012345"                        + "6789012345678901"                        + "2345678901234567"                        + "8901234567890123"                        + "4554324324362432"                        + "7674637264783264"                        + "7832678463726478"                        + "3264736274673864"                        + "7364732463546354"                        + "6354632564532645"                        + "6325463546536453"                        + "6546325463546534"                        + "6325465345326456"                        + "4635463263453264"                        + "654632498739473";        String input2 = "0123456789012345"                        + "6789012345678901"                        + "2345678901234567"                        + "8901234567890123"                        + "4567890123456789"                        + "0123456789012345"                        + "6789012345678901"                        + "2345678901234567"                        + "8901234567890123"                        + "4567890123456789"                        + "0123456789012345"                        + "6789012345678901"                        + "2345678901234567"                        + "8901234567890123"                        + "4567890123456789"                        + "0123456789012345"                        + "6789012345678901"                        + "2345873271893718"                        + "2974897146378481"                        + "7489127847281478"                        + "2174871248721847"                        + "8748327463756475"                        + "6745781641263981"                        + "2839721897438974"                        + "3286574365764576"                        + "2376914689217817"                        + "4362473624721647"                        + "61247612748612746";          // convert the string input to BigInteger        BigInteger a            = new BigInteger(input1);        BigInteger b            = new BigInteger(input2);          // Using add() method        sum = a.add(b);          // Display the result in BigInteger        System.out.println("The sum of\n"                           + a + " \nand\n" + b + " "                           + "\nis\n" + sum);          // Using double to hold  the result        d = Double.parseDouble(sum.toString());          // Display the result in double        System.out.println("Using double, Sum is "                           + d);    }}
Output:
The sum of1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234554324324362432767463726478326478326784637264783264736274673864736473246354635463546325645326456325463546536453654632546354653463254653453264564635463263453264654632498739473and1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234587327189371829748971463784817489127847281478217487124872184787483274637564756745781641263981283972189743897432865743657645762376914689217817436247362472164761247612748612746is2469135780246913578024691357802469135780246913578024691357802469135780246913578024691357802469135780246913578024691357802469135780246913578024691357802469135780246913578024691357802469135780246913578024691357802469135780246913578024691357802469135780246913578024691357802469141651513734262516435190263143967454631918743000751861146858652219747883919392209327966909307740297653290433886520376204000415840169342671082000882825735618025902245247352219Using double, Sum is Infinity
As from above output it is clear that using double for bigger integer numbers is not a good choice.Reference: https://docs.oracle.com/en/java/javase/12/docs/api/java.base/java/math/BigInteger.html#add(java.math.BigInteger)
Java-BigInteger
Java-Functions
Java-math-package
Java
Java-BigInteger
Java
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.
Initialize an ArrayList in Java
Object Oriented Programming (OOPs) Concept in Java
HashMap in Java with Examples
Interfaces in Java
How to iterate any Map in Java
ArrayList in Java
Multidimensional Arrays in Java
Stream In Java
Stack Class in Java
Singleton Class in Java