java.math.BigInteger.intValueExact() se introdujo en Java 8. Es una función incorporada que convierte el valor de BigInteger en un int y busca información perdida. Si el valor de BigInteger es mayor que 2 147 483 647 o menor que -2 147 483 648; el método lanzará ArithmeticException ya que BigInteger no cabe en el rango int.
Sintaxis:
public int intValueExact()
Valor devuelto: este método devuelve el valor int de este BigInteger.
Excepción: el método lanza ArithmeticException si el valor de BigInteger es mayor que 2,147,483,647 o menor que -2,147,483,648; ya que este rango no encaja en el rango int.
Ejemplo:
Input: 4561561 Output: 4561561 Explanation: 4561561 is given as input which is bigInteger and int value of 4561561 is 4561561 Input: -8546512 Output: -8546512 Explanation: -8546512 is given as input which is bigInteger and int value of -8546512 is -8546512 Input: 3000000000 Output: ArithmeticException Explanation: When 3000000000 is tried to convert to int, since 3000000000 > 2,147,483,647 (greater than a int's range), therefore it throws an arithmetic exception.
Los siguientes programas ilustran el método intValueExact() de la clase BigInteger:
Programa 1: Para demostrar el método intValueExact() para el número positivo <2,147,483,647
// Java program to demonstrate intValueExact() // method of BigInteger Class import java.math.*; public class GFG { public static void main(String[] args) { // Creating a BigInteger object BigInteger big; big = new BigInteger("4561561"); // print value of BigInteger System.out.println("BigInteger value : " + big); // convert big to the int value int b1 = big.intValueExact(); // print int value System.out.println("int converted value : " + b1); } }
BigInteger value : 4561561 int converted value : 4561561
Programa 2: Para demostrar el método intValueExact() para un número negativo >-2,147,483,648
// Java program to demonstrate intValueExact() // method of BigInteger Class import java.math.*; public class GFG { public static void main(String[] args) { // Creating a BigInteger object BigInteger big = new BigInteger("-8546512"); // print value of BigInteger System.out.println("BigInteger value : " + big); // convert big to the int value int b1 = big.intValueExact(); // print int value System.out.println("int converted value : " + b1); } }
BigInteger value : -8546512 int converted value : -8546512
Programa 3: Para demostrar el método intValueExact() para el número negativo <-2,147,483,648. Lanzará una excepción aritmética
// Java program to demonstrate intValueExact() // method of BigInteger Class import java.math.*; public class GFG { public static void main(String[] args) { // Creating a BigInteger object BigInteger big = new BigInteger("-3000000000"); // print value of BigInteger System.out.println("BigInteger value : " + big); try { // convert big to the int value int b1 = big.intValueExact(); // print int value System.out.println("int converted value : " + b1); } catch (Exception e) { System.out.println("Exception: " + e); } } }
BigInteger value : -3000000000 Exception: java.lang.ArithmeticException: BigInteger out of int range
Programa 4: Para demostrar el método intValueExact() para un número positivo >2,147,483,647. Lanzará una excepción aritmética
// Java program to demonstrate intValueExact() // method of BigInteger Class import java.math.*; public class GFG { public static void main(String[] args) { // Creating a BigInteger object BigInteger big = new BigInteger("3000000000"); // print value of BigInteger System.out.println("BigInteger value : " + big); try { // convert big to the int value int b1 = big.intValueExact(); // print int value System.out.println("int converted value : " + b1); } catch (Exception e) { System.out.println("Exception: " + e); } } }
BigInteger value : 3000000000 Exception: java.lang.ArithmeticException: BigInteger out of int range
Referencia: https://docs.oracle.com/javase/8/docs/api/java/math/BigInteger.html#intValueExact–
Publicación traducida automáticamente
Artículo escrito por AmanSingh2210 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA