Skip to content
Related Articles
BigDecimal byteValueExact() Method in Java
• Last Updated : 04 Dec, 2018

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
```

Attention reader! Don’t stop learning now. Get hold of all the important Java Foundation and Collections concepts with the Fundamentals of Java and Java Collections Course at a student-friendly price and become industry ready. To complete your preparation from learning a language to DS Algo and many more,  please refer Complete Interview Preparation Course.

My Personal Notes arrow_drop_up