java.math.BigDecimal.longValueExact () es una función incorporada que convierte este BigDecimal en un valor largo 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 largo.
Sintaxis:
public long longValueExact()
Parámetros: Esta función no acepta ningún parámetro.
Valor de retorno: esta función devuelve el valor largo de este BigDecimal.
Excepción: la función lanza ArithmeticException si hay una parte fraccionaria distinta de cero en este BigDecimal o si su valor es demasiado grande para representarlo como largo.
Ejemplos:
Input : "1987812456121" Output : 1987812456121 Input : "721111" Output : 721111
Los siguientes programas ilustran el uso del método java.math.BigDecimal.longValueExact():
Programa 1:
// Java program to illustrate // longValueExact() 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("267694723232"); b2 = new BigDecimal("721111845617"); // Displaying their respective Long Values System.out.println("Exact Long Value of " + b1 + " is " + b1.longValueExact()); System.out.println("Exact Long Value of " + b2 + " is " + b2.longValueExact()); } }
Exact Long Value of 267694723232 is 267694723232 Exact Long Value of 721111845617 is 721111845617
Nota: A diferencia de la función longValue(), cuya función descarta cualquier parte fraccionaria de este BigDecimal y devuelve solo los 64 bits de orden inferior cuando el resultado de la conversión es demasiado grande para representarlo como un valor largo, esta función arroja una excepción aritmética en tales casos . .
Programa 2:
// Java program to illustrate // Arithmetic Exception occurrence // in longValueExact() 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("267694723232435121868"); b2 = new BigDecimal("72111184561789104423"); // Displaying their respective Long Values // using longValue() System.out.println("Output by longValue() Function"); System.out.println("The Long Value of " + b1 + " is " + b1.longValue()); System.out.println("The Long Value of " + b2 + " is " + b2.longValue()); // Exception handling System.out.println("\nOutput by longValueExact() Function"); try { System.out.println("Exact Long Value of " + b1 + " is " + b1.longValueExact()); System.out.println("Exact Long Value of " + b2 + " is " + b2.longValueExact()); } catch (ArithmeticException e) { System.out.println("Arithmetic Exception caught"); } } }
Output by longValue() Function The Long Value of 267694723232435121868 is -9006437873208152372 The Long Value of 72111184561789104423 is -1675791733049102041 Output by longValueExact() Function Arithmetic Exception caught
Referencia: https://docs.oracle.com/javase/7/docs/api/java/math/BigDecimal.html#longValueExact()
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