java.math.BigInteger intValueExact()


On this document we will be showing a java example on how to use the intValueExact() method of BigInteger Class. Basically this method converts this BigInteger to a primitive int and checking for lost information. The checking of lost of information is somewhat necessary because the BigInteger has a lot more precision than an int so basically when we do narrowing, there are cases that we might lose some precision. If the case wherein there would be some lost of information, an ArithmeticException will be thrown.

For reference the int range is from 2147483647 to -2147483648 and these information is readily available through the Integer constants Integer.MIN_VALUE and Integer.MAX_VALUE.

Method Syntax

public int intValueExact()

Method Argument

Data Type Parameter Description

Method Returns

The intValueExact() method returns this BigInteger converted to primitive int.


Requires Java 1.8 and up

Java BigInteger intValueExact() Example

Below is a java code demonstrates the use of intValueExact() method of BigInteger class. The example presented might be simple however it shows the behavior of the intValueExact() method.


import java.math.BigInteger;
import java.util.Scanner;

 * A java example source code to demonstrate
 * the use of intValue() method of BigInteger class

public class BigIntegerIntValueExactExample {

	public static void main(String[] args) {	
		// Declare and initialize our BigInteger values
		BigInteger val1 = new BigInteger("12");
		BigInteger val2 = new BigInteger("150");
		//BigInteger val2 = new BigInteger("21474832647");		

		// get the int equivalent of each BigInteger
		int intVal1 = val1.intValueExact();
		int intVal2 = val2.intValueExact();
		// print the operation
		System.out.println("val1 in int is "+intVal1);
		System.out.println("val2 in int is "+intVal2);		


This example is a lot simpler than it looks. We only initialize two BigInteger, one is certainly within range and the other is also within range but we have included a value that is certainly outside of range. We have commented it because it will throw an ArithmeticException. This swill clearly be simulated on below example output.

Sample Output

Below is the sample output when you run the above example.

BigInteger intValueExact() example output