BigDecimal byteValueExact() Method in Java

The java.math.BigDecimal.byteValueExact() is an in-built function which converts the BigDecimal to a byte and checks for lost information. Any BigDecimal value greater than 127 or less than -128, will generate an exception as it doesn’t fit in byte range.

Syntax:

public byte byteValueExact()

Parameters: The method does not accept any parameters.



Return Value:This method returns the byte value of the BigDecimal Object.

Exception: This function throws ArithmeticException in case if the BigDecimal has a nonzero fractional part, i.e., in case of a decimal values, or is out of the possible range for a byte result.

Examples:

Input : 127
Output : 127

Input : -67
Output : -67

Below programs will illustrate the use of byteValueExact() Function:
Program 1:

filter_none

edit
close

play_arrow

link
brightness_4
code

// 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);
    }
}

chevron_right


Output:

Exact byte value of 47 is 47

Program 2:

filter_none

edit
close

play_arrow

link
brightness_4
code

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

chevron_right


Output:

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

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



My Personal Notes arrow_drop_up


If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.