Método BigDecimal longValueExact() en Java

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());
    }
}
Producción:

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");
        }
    }
}
Producción:

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

Deja una respuesta

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