The java.math.BigInteger.doubleValue() converts this BigInteger to a double value. If the value return by this function is too big for a magnitude to represent as a double then it will be converted to Double.NEGATIVE_INFINITY or Double.POSITIVE_INFINITY as appropriate. There is a chance that this conversion can lose information about the precision of the BigInteger value.
Syntax:
public double doubleValue()
Return Value: The method returns a double value which represents double value for this BigInteger.
Examples:
Input: BigInteger1=32145 Output: 32145.0 Explanation: BigInteger1.doubleValue()=32145.0. Input: BigInteger1=32145535361361525377 Output: 3.2145535E19 Explanation: BigInteger1.doubleValue()=3.2145535E19. This BigInteger is too big for a magnitude to represent as a double then it will be converted to Double.NEGATIVE_INFINITY or Double.POSITIVE_INFINITY as appropriate.
Below programs illustrate doubleValue() method of BigInteger class:
Example 1:
// Java program to demonstrate doubleValue() method of BigInteger import java.math.BigInteger; public class GFG { public static void main(String[] args) { // Creating 2 BigInteger objects BigInteger b1, b2; b1 = new BigInteger( "32145" ); b2 = new BigInteger( "7613721" ); // apply doubleValue() method double doubleValueOfb1 = b1.doubleValue(); double doubleValueOfb2 = b2.doubleValue(); // print doubleValue System.out.println( "doubleValue of " + b1 + " : " + doubleValueOfb1); System.out.println( "doubleValue of " + b2 + " : " + doubleValueOfb2); } } |
doubleValue of 32145 : 32145.0 doubleValue of 7613721 : 7613721.0
Example 2: When returned double value is too big for a magnitude to represent as a double.
// Java program to demonstrate doubleValue() method of BigInteger import java.math.BigInteger; public class GFG { public static void main(String[] args) { // Creating 2 BigInteger objects BigInteger b1, b2; b1 = new BigInteger( "32145535361361525377" ); b2 = new BigInteger( "7613721535372632367351" ); // apply doubleValue() method double doubleValueOfb1 = b1.doubleValue(); double doubleValueOfb2 = b2.doubleValue(); // print doubleValue System.out.println( "doubleValue of " + b1 + " : " + doubleValueOfb1); System.out.println( "doubleValue of " + b2 + " : " + doubleValueOfb2); } } |
doubleValue of 32145535361361525377 : 3.2145535361361527E19 doubleValue of 7613721535372632367351 : 7.613721535372632E21
Reference: https://docs.oracle.com/javase/7/docs/api/java/math/BigInteger.html#doubleValue()