Método BigDecimal intvalueExact() en Java

java.math.BigDecimal.intValueExact () es una función incorporada que convierte este BigDecimal en un valor entero y verifica la información perdida. Esta función arroja una excepción aritmética si hay alguna parte fraccionaria de este BigDecimal o si el resultado de la conversión es demasiado grande para representarlo como un valor entero.

Sintaxis:

public int intValueExact()

Parámetros: Esta función no acepta parámetros.

Valor devuelto: esta función devuelve el valor entero de este BigDecimal.

Excepción: la función genera una ArithmeticException si hay una parte fraccionaria distinta de cero en este BigDecimal o si su valor es demasiado grande para representarlo como un número entero.

Ejemplos:

Input : "19878124"
Output : 19878124

Input : "721111"
Output : 721111

Los siguientes programas ilustran el uso del método java.math.BigDecimal.intValueExact():
Programa 1:

// Java program to illustrate
// intValueExact() method
import java.math.*;
import java.io.*;
  
class GFG {
    public static void main(String[] args)
    {
        // Creating 2 BigDecimal Objects
        BigDecimal b1, b2;
        // Assigning values to b1, b2
        b1 = new BigDecimal("19878124");
        b2 = new BigDecimal("721111");
        // Displaying their respective Integer Values
        System.out.println("Exact Integer Value of " +
        b1 + " is " + b1.intValueExact());
        System.out.println("Exact Integer Value of " +
        b2 + " is " + b2.intValueExact());
    }
}
Producción:

Exact Integer Value of 19878124 is 19878124
Exact Integer Value of 721111 is 721111

Nota: A diferencia de la función intValue(), cuya función descarta cualquier parte fraccionaria de este BigDecimal y devuelve solo los 32 bits de orden inferior cuando el resultado de la conversión es demasiado grande para representarlo como un valor entero, esta función arroja una excepción aritmética en tales casos . .

Programa 2: Este programa ilustrará cuándo esta función arroja una excepción.

// Java program to illustrate
// Arithmetic Exception occurrence
// in intValueExact() method
import java.math.*;
import java.io.*;
  
class GFG {
    public static void main(String[] args)
    {
        // Creating 2 BigDecimal Objects
        BigDecimal b1, b2;
  
        // Assigning values to b1, b2
        b1 = new BigDecimal("3232435121868179");
        b2 = new BigDecimal("84561789104423214");
  
        // Displaying their respective Integer Values
        // using intValue()
        System.out.println("Output by intValue() Function");
        System.out.println("The Integer Value of " + 
        b1 + " is " + b1.intValue());
        System.out.println("The Integer Value of " + 
        b2 + " is " + b2.intValue());
          
        // Exception handling
        System.out.println("\nOutput by intValueExact() Function");
        try {
            System.out.println("Exact Integer Value of " + 
            b1 + " is " + b1.intValueExact());
            System.out.println("Exact Integer Value of " + 
            b2 + " is " + b2.intValueExact());
        }
        catch (ArithmeticException e) {
            System.out.println("Arithmetic Exception caught");
        }
    }
}
Producción:

Output by intValue() Function
The Integer Value of 3232435121868179 is -214774381
The Integer Value of 84561789104423214 is -920387282

Output by intValueExact() Function
Arithmetic Exception caught

Referencia: https://docs.oracle.com/javase/7/docs/api/java/math/BigDecimal.html#intValueExact()

Publicación traducida automáticamente

Artículo escrito por RICHIK BHATTACHARJEE 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 *