Java BigInteger doubleValue()方法
java.math.BigInteger.doubleValue() 将这个BigInteger转换为一个双倍值。如果该函数返回的值过大,无法以双倍数表示,那么它将被转换为Double.NEGATIVE_INFINITY或Double.POSITIVE_INFINITY,视情况而定。这种转换有可能会丢失关于BigInteger值的精度信息。
语法
public double doubleValue()
返回值: 该方法返回一个双倍值,代表这个BigInteger的双倍值。
例子
输入: BigInteger1=32145
输出: 32145.0
解释: BigInteger1.doubleValue()=32145.0.
输入: BigInteger1=32145535361361525377
输出: 3.2145535E19
解释: BigInteger1.doubleValue()=3.2145535E19. 这个BigInteger太大
的大小,那么它将被转换为Double.NEGATIVE_INFINITY
或Double.POSITIVE_INFINITY,视情况而定。
下面的程序说明了BigInteger类的doubleValue()方法。
例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
例子2: 当返回的双倍值过大,无法用倍数表示时。
// 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
**参考资料: **https://docs.oracle.com/javase/7/docs/api/java/math/BigInteger.html#doubleValue()