# 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:

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

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.

Article Tags :
Practice Tags :

Be the First to upvote.

Please write to us at contribute@geeksforgeeks.org to report any issue with the above content.