平时我们在存储整数的时候默认使用的是int,如果数字过大,我们会使用long类型,但如果long类型也存储不下了呢?因为Java中没有定义long long,所以在处理大数据的整数时,我们就需要用到BigInteger
一.BigInteger
1.概述
BigInteger是Java.math包中的类,因此我们在使用时,需要导包
2.构造方法
BigInteger定义了5种构造方法,但我们主要知道其中的三种
BigInteger(int num,Random rnd)
获取随机大整数,范围[0—2^num-1]
BigInteger(String val);
获取指定的大整数
BigInteger(String val,int radix);
获取指定进制的大整数
如图演示:
注:①字符串中必须是整数
②字符串中的数字必须要跟进制吻合
3.常见方法
方法代码不做演示,重点了解一下valueOf
细节:只要进行计算都会产生一个新的BigInteger对象,但在valueOf代码的底层已经提前创建好了-16--16之间的整数对象,因此在使用时不用再创建对象
二. BigDecimal
我们在进行小数之间的计算时,常常会出现精度不准确的现象
比如:
因此为了提高精度,Java就给我们提供了BigDecimal以供给我们进行数据运算
1.概述
BigDecimal是Java.math包中的类,因此我们在使用时,需要导包
2.构造方法
其中的构造方法有许多,我们先主要了解其中两种最简单的获取
BigDecimal(double val);
BigDecimal(String val);
注: 传递double获取可能不精确,因此我们通常使用第二种方法获取对象
3.常见方法
①精确除法
BigDecimal divide(BigDecimal divisor, int scale, int roundingMode);
其中的scale是要保留的小数位数,roundingMode是舍入方式,下面我们就来了解一下其中的舍入方式
roundingMode 取舍模式
下面为Java中给出的所有舍入方式,我们需要牢记的就是四舍五入HALF_UP模式,其余的只需了解
②setScale
除了在除法中通过计算设置结果的精度,我们也可以通过setScale方法来直接设置精度
若有不足,错误之处,望指出更正(˵¯͒〰¯͒˵)