Java大数据处理——BigIntege和BigDecimal
平时我们在存储整数的时候默认使用的是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方法来直接设置精度

若有不足,错误之处,望指出更正(˵¯͒〰¯͒˵)
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)