Método BigInteger add() en Java con ejemplos

El java.math.BigInteger .add(BigInteger val) se usa para calcular la suma aritmética de dos BigIntegers. Este método se utiliza para encontrar sumas aritméticas de grandes números de un rango mucho mayor que el rango del doble de tipo de datos más grande de Java sin comprometer la precisión del resultado. Este método realiza una operación sobre el BigInteger actual mediante el cual se llama a este método y se pasa BigInteger como parámetro.

Sintaxis:

public BigInteger add(BigInteger val)

Parámetros: este método acepta un parámetro val que es el valor que se agregará a este BigInteger.

Valor devuelto: este método devuelve un BigInteger que contiene la suma (este + val).

Los siguientes programas se utilizan para ilustrar el método add() de BigInteger.

Ejemplo 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");
    }
}

Producción:

La suma de
5454564684456454684646454545
y
4256456484464684864864864864
es
9711021168921139549511319409

Como puede ver en el ejemplo anterior, los datos son totalmente precisos incluso después de agregar un número de longitud muy grande.

Ejemplo 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);
    }
}

Producción:

The sum of
1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234554324324362432767463726478326478326784637264783264736274673864736473246354635463546325645326456325463546536453654632546354653463254653453264564635463263453264654632498739473
and
1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234587327189371829748971463784817489127847281478217487124872184787483274637564756745781641263981283972189743897432865743657645762376914689217817436247362472164761247612748612746
is
2469135780246913578024691357802469135780246913578024691357802469135780246913578024691357802469135780246913578024691357802469135780246913578024691357802469135780246913578024691357802469135780246913578024691357802469135780246913578024691357802469135780246913578024691357802469141651513734262516435190263143967454631918743000751861146858652219747883919392209327966909307740297653290433886520376204000415840169342671082000882825735618025902245247352219
Using double, Sum is Infinity

A partir de la salida anterior, está claro que usar el doble para números enteros más grandes no es una buena opción.
Referencia: https://docs.oracle.com/en/java/javase/12/docs/api/java.base/java/math/BigInteger.html#add(java.math.BigInteger)

Publicación traducida automáticamente

Artículo escrito por Rajnis09 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *