Skip to content
Related Articles
Get the best out of our app
GeeksforGeeks App
Open App
geeksforgeeks
Browser
Continue

Related Articles

BigDecimal byteValueExact() Method in Java

Improve Article
Save Article
Like Article
Improve Article
Save Article
Like Article

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:




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

Output:

Exact byte value of 47 is 47

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

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
Last Updated : 04 Dec, 2018
Like Article
Save Article
Similar Reads
Related Tutorials