Java大数据处理——BigIntege和BigDecimal

平时我们在存储整数的时候默认使用的是int,如果数字过大,我们会使用long类型,但如果long类型也存储不下了呢?因为Java中没有定义long long,所以在处理大数据的整数时,我们就需要用到BigInteger

一.BigInteger

1.概述

BigInteger是Java.math包中的类,因此我们在使用时,需要导包

2.构造方法

BigInteger定义了5种构造方法,但我们主要知道其中的三种

ab13b6d0ef9f406dba0b52e234b9ee05.png

BigInteger(int num,Random rnd) 

获取随机大整数,范围[0—2^num-1]

 BigInteger(String val);

获取指定的大整数

BigInteger(String val,int radix);

获取指定进制的大整数

如图演示:

d9e37104f94f4cf3a9430930e3770da2.png

 b44b0dabad3045f9a5125ccaef5c5637.png

注:①字符串中必须是整数

②字符串中的数字必须要跟进制吻合

3.常见方法

5a458d6b1d01493492e746b95646d8f2.png

方法代码不做演示,重点了解一下valueOf

4125d5fb572b46d6b9d364e5a86ae820.png

细节:只要进行计算都会产生一个新的BigInteger对象,但在valueOf代码的底层已经提前创建好了-16--16之间的整数对象,因此在使用时不用再创建对象

二. BigDecimal

我们在进行小数之间的计算时,常常会出现精度不准确的现象

比如:

9c98e04e14294caf8c90dec1204d926a.png

因此为了提高精度,Java就给我们提供了BigDecimal以供给我们进行数据运算

1.概述

BigDecimal是Java.math包中的类,因此我们在使用时,需要导包

2.构造方法

1e4b7e38a49448c68aa4b3b2bd2ea3fd.png

其中的构造方法有许多,我们先主要了解其中两种最简单的获取

BigDecimal(double val);

BigDecimal(String val);

注: 传递double获取可能不精确,因此我们通常使用第二种方法获取对象

f20a72273f8844b3a2046a0fca9c7da2.png

3.常见方法

f266de33cb624fe495615c06ca9b8adb.png

①精确除法

BigDecimal divide(BigDecimal divisor, int scale, int roundingMode); 

其中的scale是要保留的小数位数,roundingMode是舍入方式,下面我们就来了解一下其中的舍入方式

roundingMode 取舍模式

下面为Java中给出的所有舍入方式,我们需要牢记的就是四舍五入HALF_UP模式,其余的只需了解

f9120219b13f462ba93ab77c9a08e75e.png

216397d90d9a4429b2e8151ff31562e8.png 

②setScale

除了在除法中通过计算设置结果的精度,我们也可以通过setScale方法来直接设置精度

8d726c667f1546b1922f16f2fbc83ac2.png

 

若有不足,错误之处,望指出更正(˵¯͒〰¯͒˵)

 

 

 

 

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

汤姆大聪明

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值