Método BigDecimal byteValueExact() en Java

java.math.BigDecimal.byteValueExact () es una función integrada que convierte BigDecimal en un byte y busca información perdida. Cualquier valor BigDecimal superior a 127 o inferior a -128 generará una excepción ya que no cabe en el rango de bytes.

Sintaxis:

public byte byteValueExact()

Parámetros: El método no acepta ningún parámetro.

Valor de retorno: este método devuelve el valor de byte del objeto BigDecimal.

Excepción: esta función arroja ArithmeticException en caso de que BigDecimal tenga una parte fraccionaria distinta de cero, es decir, en el caso de valores decimales, o esté fuera del rango posible para un resultado de byte.

Ejemplos:

Input : 127
Output : 127

Input : -67
Output : -67

Los siguientes programas ilustrarán el uso de la función byteValueExact():
Programa 1:

// Java program to demonstrate byteValueExact() method
import java.io.*;
import java.math.*;
  
public class GFG {
  
    public static void main(String[] args)
    {
  
        // Creating a BigDecimal object
        BigDecimal b;
  
        // Creating a byte objects
        byte bt;
  
        b = new BigDecimal("47");
  
        // Assigning the byte value of b to bt
        bt = b.byteValueExact();
  
        // Displaying the byte value
        System.out.println("Exact byte value of " + b + " is " + bt);
    }
}
Producción:

Exact byte value of 47 is 47

Programa 2:

// Java program to demonstrate byteValueExact() method
import java.io.*;
import java.math.*;
  
public class GFG {
  
    public static void main(String[] args)
    {
  
        // Creating a BigDecimal object
        BigDecimal b;
  
        b = new BigDecimal("-128.0564000");
        System.out.println("BigDecimal value : " + b);
  
        long roundedValue = Math.round(b.doubleValue());
        System.out.println("Rounded value : " + roundedValue);
  
        // Rounding is necessary as the fractional part is not zero
        // as well as exceeding the byte range of -128 to 127
        b = new BigDecimal(roundedValue);
        System.out.println("Byte converted value : " + b.byteValueExact());
    }
}
Producción:

BigDecimal value : -128.0564000
Rounded value : -128
Byte converted value : -128

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

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 *