天天看点

后端---java中的大数值BigInteger和BIgDecimal

大数值

基本语法:

如果基本的整数和浮点数精度不能满足需求,那么可以使用java.math包中的两个很有用的类:BigInteger和BigDecimal实现了任意长度数字序列的数值.BigInteger类实现了任意精度的整数运算.BigDecimal实现了任意精度的浮点数运算.

使用静态的valueOf方法可以将普通的数值转换为大数值:

BigInteger a=BigInteger.valueOf(100);
           

不过需要注意的是大家日常熟悉的算术运算符(如:+和*)不能用于处理大数值.而需要使引用大数据类中的add和multiply方法.

BigInteger c= a.add(b);  //c=a+b;
BigInteger d=c.multiply(b.add(BigInteger.valueOf(2)));    //d=c*(b+2);
           

BigInteger和BigDecimal类提供的方法: 

BigInteger add(BigInteger other)           //加法

BigInteger subtract(BigInteger other)        //减法

BigInteger multiply(BigInteger other)        //乘法

BigInteger divide(BigInteger other)        //除法

BigInteger mod(BigInteger other)        //求余

int compareTo(BigInteger other)        //相等返回0,小于返回负数,大于返回正数

static BigInteger valueOf(long x)         //返回值等于x的大整数

继续阅读