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