Java 中大数的处理方案BigInteger和BigDecimal类的使用

本文介绍了如何在编程中使用BigInteger处理大整数和BigDecimal处理高精度浮点数,通过实例演示了它们的加减乘除操作。

博主前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住也分享一下给大家,
👉点击跳转到网站

BigInteger和BigDecimal的介绍

应用场景:
1、BigInteger适合保存比较大的整型
2、BigDecimal适合保存精度更高的浮点型(小数)

一、BigInteger类的使用详解,代码如下

public class BigInteger_ {
    public static void main(String[] args) {
        //当我们编程中,需要处理很大的整数,long不够用
        //可以使用BigInteger的类来搞定
//        long l = 234459897895499999999999999999999l;
//        System.out.println("l=" + l);

        BigInteger bigInteger = new BigInteger("234459897895499999999999999999999");
        System.out.println(bigInteger);
        //1.在对BigInteger进行加减乘除的时候,需要使用对应的方法,不能直接进行 + - * /
        BigInteger bigInteger2 = new BigInteger("100");
        BigInteger add = bigInteger.add(bigInteger2);
        System.out.println(add);//+

        BigInteger subtract = bigInteger.subtract(bigInteger2);
        System.out.println(subtract); //减

        BigInteger divide = bigInteger.divide(bigInteger2);
        System.out.println(divide);//除

    }
}

输出结果如下

234459897895499999999999999999999
234459897895500000000000000000099
234459897895499999999999999999899
2344598978954999999999999999999

二、BigDecimal类的使用详解,代码如下

public class BigDecimal_ {
    public static void main(String[] args) {
        //当我们需要保存一个精度很高的数时,double不够用
        //可以用BigDecimal
//        double d=19999.2323223423493423423432423;
//        System.out.println(d);

        BigDecimal bigDecimal = new BigDecimal("19999.2323223423493423423432423");
        BigDecimal bigDecimal2 = new BigDecimal("1.1");
        System.out.println(bigDecimal);

        //1.如果对BigDecimal进行运算,比如加减乘除,需要使用对应的方法
        //2.创建一个需要操作的BigDecimal然后调用相应的方法即可
        System.out.println(bigDecimal.add(bigDecimal2));//+
        System.out.println(bigDecimal.subtract(bigDecimal2));//-
        System.out.println(bigDecimal.multiply(bigDecimal2));//*
        //在调用divide 方法时,指定精度即可.BigDecimal.ROUND_CEILING
        //如果有无限循环小数,就会保留分子的精度 就是定义的bigDecimal 数对应的分子的精度,小数点后的位数
        //不指定精度,可能就会抛出异常
        System.out.println(bigDecimal.divide(bigDecimal2, BigDecimal.ROUND_CEILING));// /  可能抛出异常ArithmeticException
    }
}

输出结果如下

19999.2323223423493423423432423
20000.3323223423493423423432423
19998.1323223423493423423432423
21999.15555457658427657657756653
18181.1202930384994021294029476
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

路宇

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

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

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

打赏作者

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

抵扣说明:

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

余额充值