Метод BigInteger add () в Java с примерами
Java.math.BigInteger.add (BigInteger val) используется для вычисления арифметической суммы двух BigInteger. Этот метод используется для поиска арифметического сложения больших чисел диапазона, намного превышающего диапазон наибольшего типа данных double java без ущерба для точности результата. Этот метод выполняет операцию над текущим BigInteger, с помощью которого этот метод вызывается и BigInteger передается в качестве параметра.
Синтаксис:
общедоступное BigInteger add (BigInteger val)
Параметры: этот метод принимает параметр val, который является значением, добавляемым к этому BigInteger.
Возвращаемое значение: этот метод возвращает BigInteger, который содержит сумму (this + val).
Ниже программы используются для иллюстрации метода add () 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
" + a + "
and
" + b + " " + "
is
" + sum + "
" ); } } |
Выход:
The sum of
5454564684456454684646454545
and
4256456484464684864864864864
is
9711021168921139549511319409
Как видно из приведенного выше примера, данные полностью уточняются даже после добавления числа очень большой длины.
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
" + a + "
and
" + b + " " + "
is
" + 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); } } |
Выход:
The sum of
1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234554324324362432767463726478326478326784637264783264736274673864736473246354635463546325645326456325463546536453654632546354653463254653453264564635463263453264654632498739473
and
1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234587327189371829748971463784817489127847281478217487124872184787483274637564756745781641263981283972189743897432865743657645762376914689217817436247362472164761247612748612746
is
2469135780246913578024691357802469135780246913578024691357802469135780246913578024691357802469135780246913578024691357802469135780246913578024691357802469135780246913578024691357802469135780246913578024691357802469135780246913578024691357802469135780246913578024691357802469141651513734262516435190263143967454631918743000751861146858652219747883919392209327966909307740297653290433886520376204000415840169342671082000882825735618025902245247352219
Using double, Sum is Infinity
Как видно из вышеприведенного вывода, использование double для больших целых чисел - не лучший выбор.
Ссылка: https://docs.oracle.com/en/java/javase/12/docs/api/java.base/java/math/BigInteger.html#add(java.math.BigInteger)
Вниманию читателя! Не переставай учиться сейчас. Ознакомьтесь со всеми важными концепциями Java Foundation и коллекций с помощью курса "Основы Java и Java Collections" по доступной для студентов цене и будьте готовы к работе в отрасли. Чтобы завершить подготовку от изучения языка к DS Algo и многому другому, см. Полный курс подготовки к собеседованию .