BigInteger
BigInteger不是Java中的基本数据类型,它与String类似,是一个类。
当某个整数已经超过long型整数的范围时,我们就可以把这个数封装成BigInteger对象。另外,由于其不是基本数据类型,所以很明显不能使用+ - * /来进行运算,取而代之的则是add()、subtract()、mutiply()、divide()四种方法。
构造方法
BigInteger提供多种构造器,其中最为常用的应该就是BigInteger(String val)这种,将BigInteger的十进制字符串转换为BigInteger。
BigInteger b1 = new BigInteger("22222222333333333300000");
BigInteger b2 = new BigInteger("11111111222222222211111");
BigInteger b3 = new BigInteger("-1111111111111111111111111111");
BigInteger result = new BigInteger("0");
常用方法–加减乘除
result = b1.add(b2);//加
result = b1.subtract(b2);//减
result = b1.multiply(b2);//乘
result = b1.divide(b2);//除
其余常见方法
double d = b1.doubleValue();//转换为大整数的double类型的值
float f = b1.floatValue();//转换为大整数的float类型的值
result = b1.max(b2);//返回最大值
result = b1.min(b2);//返回最小值
result = b1.negate();//取相反数
result = b3.abs();//取绝对值
result = b1.pow(2);//取大整数的2次方
String str = b1.toString();//转换为字符串
BigDecimal
BigInteger是为了表示那些无法用long表示的整数,而当我们的日常的计算中,偶尔会见到无法用float/double表示更大的精度的情况,这个时候就可以使用BigDecimal
构造方法
BigDecimal b1 = new BigDecimal("0.001");
BigDecimal类的加减乘除与BigInteger一样,也是add()、subtract()、mutiply()、divide()四种方法。
比较大小
BigDecimal比较大小使用的compareTo()方法
BigDecimal b1 = new BigDecimal("0.001");
BigDecimal b2 = new BigDecimal("0.002");
if(b1.compareTo(b2) == -1)
System.out.println("b1小于b2");
if(b1.compareTo(b2) == 0)
System.out.println("b1等于b2");
if(b1.compareTo(b2) == 1)
System.out.println("b1大于b2");
位数的保留
最常见的舍入模式就是四舍五入了
BigDecimal b3 = new BigDecimal("0.0024").setScale(3,BigDecimal.ROUND_HALF_UP);//四舍五入保留3位小数
另外还有BigDecimal.ROUND_UP(向上取整)、BigDecimal.ROUND_DOWN(向下取整)等舍入模式
小白一枚,如果有错还请指出,本人学习Java网站how2Java,