如果基本的整数类型和浮点类型精确度还不够满足需求,那么可以使用javamath包中的BigInteger和BigDecimal类。这些类的对象代表了数字,该数字有任意长序列的位数。BigInteger类实现了任意精度整数计算,BigDecimal对浮点数有同样的实现。
BigInteger类的静态方法valueOf将long型转换为BigInteger: 例如
BigInteger n = BigInteger.valueof(876543210123456789L);
我们也可以用数字字符串构造
BigInteger:BigInteger k = new BigInteger("9876543210123456789");
Java不允许对象使用操作符,因此操作大数的时候,必须使用方法调用,
BigInteger r = BigInteger.valueOf(5).multiply(n.add(k)); // r = 5* (n + k)
BigDecima1类能计算出准确结果。
调用BigDecimal.valueof(n, e)返回BigDecimal示例,其值为nx10e次方
利用这个大数进行浮点数的减法运算
当我们进行浮点数的减法运算的时候可能会丢失精度,比如2.0-1.1=0.8999999999999
但是如果我们用这个BigDecimal.substract的话就不会丢失结果
BigDecimal.valueOf(2, 0 ).substract(BigDecimal.valueOf(11,
运算的结果精确为0.9。
标签:BigInteger,BigDecimal,大数,浮点数,valueOf,介绍,运算 From: https://www.cnblogs.com/xuehaiqiule/p/17633604.html