【03 核心类库 4.2&4.3 BigInteger类和BigDecimal类】

4.2 BigInteger类的概念

4.2.1 基本概念

若希望表示比long类型范围还大的整数数据,则需要借助java.math.BigInteger类型描述。

4.2.2 常用的方法

方法声明功能介绍
BigInteger(String val)根据参数指定的字符串来构造对象
BigInteger add(BigInteger val)用于实现加法运算
BigInteger subtract(BigInteger val)用于实现减法运算
BigInteger multiply(BigInteger val)用于实现乘法运算
BigInteger divide(BigInteger val)用于实现除法运算
BigInteger remainder(BigInteger val)用于实现取余运算
BigInteger[] divideAndRemainder(BigInteger val)用于实现取商和余数的运算
package demo01;

import java.math.BigInteger;

public class BigIntegerTest {
    public static void main(String[] args) {
        //1.构造对象
        BigInteger bi1=new BigInteger("20");
        BigInteger bi2=new BigInteger("8");

        //2.实现加减乘除取余的运算
        System.out.println("实现加法的运算等于:"+bi1.add(bi2));          //28
        System.out.println("实现减法的运算等于:"+bi1.subtract(bi2));     //12
        System.out.println("实现法乘法的运算等于:"+bi1.multiply(bi2));    //160
        System.out.println("实现法除法的运算等于:"+bi1.divide(bi2));      //2  整数除整数得整数
        System.out.println("实现取余得运算等于:"+bi1.remainder(bi2));    //4

        //3.一次性得到商和余数
        BigInteger[] arr=bi1.divideAndRemainder(bi2);
        for (int i=0;i<arr.length;i++) {
            System.out.println("下标为"+i+"的元素是:"+arr[i]);
        }
    }
}

4.3 BigDecimal类的概述

4.3.1 基本概念

由于float类型和double类型在运算时可能会有误差,若希望实现精确运算则借助java.math.BigDecimal类型加以描述。

4.3.2 常用的方法

方法声明功能介绍
BigDecimal(String val)根据参数指定的字符串来构造对象
BigDecimal add(BigDecimal augend)用于实现加法运算
BigDecimal subtract(BigDecimal subtrahend)用于实现减法运算
BigDecimal multiply(BigDecimal multiplicand)用于实现乘法运算
BigDecimal divide(BigDecimal divisor)用于实现除法运算
package demo01;

import java.math.BigDecimal;
import java.math.RoundingMode;

public class BigDecimalTest {
    public static void main(String[] args) {

        System.out.println(0.1+0.2);    //0.30000000000000004
        //1.实现精确运算
        BigDecimal bd1=new BigDecimal("0.1");
        BigDecimal bd2=new BigDecimal("0.2");
        System.out.println("精确的运算结果是:"+bd1.add(bd2));   //0.3

        BigDecimal b1=new BigDecimal("5.2");
        BigDecimal b2=new BigDecimal("1.3");
        //2. 使用构造的对象实现加减乘除
        System.out.println("实现加法的运算结果是:"+b1.add(b2));       //6.5
        System.out.println("实现减法的运算结果是:"+b1.subtract(b2));  //3.9
        System.out.println("实现乘法的运算结果是:"+b1.multiply(b2));  //6.76
        System.out.println("实现除法的运算结果是:"+b1.divide(b2));    //4

        //3.注意事项
        BigDecimal b7=new BigDecimal("2");
        BigDecimal b8=new BigDecimal("0.3");
        System.out.println("除法的运算结果是:"+b7.divide(b8, RoundingMode.HALF_UP));    //7     余数采用了四舍五入的原则
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

江桥诗

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

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

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

打赏作者

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

抵扣说明:

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

余额充值