BigInteger subtract() Method in Java with Examples - GeeksforGeeks

08 Apr, 2019
The java.math.BigInteger.subtract(BigInteger val) is used to calculate the Arithmetic difference of two BigIntegers. This method is applicable on large value numbers of range much greater than the range of biggest data type double of Java without compromising with the precision of the result but as BigInteger class internally uses array of integers for processing, the operation on object of BigIntegers are not as fast as on primitives. This method performs an operation upon the current BigInteger by which this method is called and BigInteger passed as the parameter.
Syntax:
public BigInteger subtract(BigInteger val)

Parameters: This method accepts a parameter val which is the value to be subtracted from this BigInteger.
Return value: This method returns a BigInteger which holds difference (this – val).
Below programs is used to illustrate the subtract() method of BigInteger.
Example 1:
// Java program to demonstrate// subtract() method of BigInteger  import java.math.BigInteger;  public class GFG {    public static void main(String[] args)    {        // BigInteger object to store result        BigInteger diff;          // For user input        // Use Scanner or BufferedReader          // Two objects of String created        // Holds the values to calculate the difference        String input1            = "56454210032311316797946498748";        String input2            = "34664864678464621214565587864";          // Convert the string input to BigInteger        BigInteger a            = new BigInteger(input1);        BigInteger b            = new BigInteger(input2);          // Using subtract() method        diff = a.subtract(b);          // Display the result in BigInteger        System.out.println("The difference of\n"                           + a + " \nand\n" + b + " "                           + "\nis\n" + diff);    }}
The difference of
56454210032311316797946498748 
and
34664864678464621214565587864 
is
21789345353846695583380910884

Example 2:
// Java program to demonstrate// subtract() method of BigInteger  import java.math.BigInteger;  public class GFG {    public static void main(String[] args)    {        // BigInteger object to store result        BigInteger diff;          // For user input        // Use Scanner or BufferedReader          // Two objects of String created        // Holds the values to calculate the difference        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 subtract() method        diff = a.subtract(b);          // Display the result in BigInteger        System.out.println("The difference of\n"                           + a + " \nand\n" + b + " "                           + "\nis\n" + diff);          // Using double to hold  the result        double d = Double.parseDouble(diff.toString());          // Display the result in double        System.out.println("Using double, difference is "                           + d);    }}
The difference of1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234554324324362432767463726478326478326784637264783264736274673864736473246354635463546325645326456325463546536453654632546354653463254653453264564635463263453264654632498739473and1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234587327189371829748971463784817489127847281478217487124872184787483274637564756745781641263981283972189743897432865743657645762376914689217817436247362472164761247612748612746is-33002865009396981507737306491010801062644213434222388597510922746801391210121282235315618654827646726197360979211111111291108913660035764552871611899208711496592980249873273Using double, difference is -3.300286500939698E172
As from the above examples, it is clear that the data is full precise when BigInteger is used.
Reference: https://docs.oracle.com/en/java/javase/12/docs/api/java.base/java/math/BigInteger.html#subtract(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.
Comments
Old Comments
Interfaces in Java
Singleton Class in Java
LinkedList in Java
Collections in Java
Set in Java
Overriding in Java
Functional Interfaces in Java
Queue Interface In Java
Stream In Java
How to add an element to an Array in Java?