JAVA BigDecimal比较大小相关操作

介绍

        java的BigDecimal比较大小,不能使用大于号、小于号、等于号这些做判断,记录一下普通大小的比较和范围大小比较的一些操作,方便直接使用

两BigDecimal直接做比较

使用的是compareTo方法直接比较

    import java.math.BigDecimal;

    public static void main(String[] args) {

        BigDecimal a = new BigDecimal(1);
        BigDecimal b = new BigDecimal(2);
        int result = a.compareTo(b);
        System.out.println(result);
    }

代码案例输出-1

可能输出的结果如下

BigDecimal直接比较大小结果集
比大小出现的情况result打印结果
a 大于 b  ( a > b )1
a 等于 b  ( a = b )0
a 小于 b  ( a < b )-1

组合判断范围

min < mine < max

    import java.math.BigDecimal;

    public static boolean bigDecimalCompareTo2(BigDecimal mine, BigDecimal min, BigDecimal max){

        //算大于
        int num = mine.compareTo(min);
        boolean a = false;
        boolean b = false;

        if(num > 0){
            a = true;
        }

        //算小于
        int num1 = mine.compareTo(max);
        if(num1 < 0){
            b = true;
        }

        //都符合
        if(a & b){
            return true;
        }

        return false;
    }

    public static void main(String[] args) {

        BigDecimal mine = new BigDecimal(2);
        BigDecimal min = new BigDecimal(1);
        BigDecimal max = new BigDecimal(3);

        boolean b = bigDecimalCompareTo2(mine, min, max);

        System.out.println(b);

    }

min <= mine < max

    import java.math.BigDecimal;

    public static boolean bigDecimalCompareTo(BigDecimal mine, BigDecimal min, BigDecimal max){

        //算大于 等于
        int num = mine.compareTo(min);
        boolean a = false;
        boolean b = false;

        if(num > 0 || num == 0){
            a = true;
        }

        //算小于
        int num1 = mine.compareTo(max);
        if(num1 < 0){
            b = true;
        }

        //都符合
        if(a & b){
            return true;
        }

        return false;
    }

    public static void main(String[] args) {

        BigDecimal mine = new BigDecimal(3);
        BigDecimal min = new BigDecimal(1);
        BigDecimal max = new BigDecimal(3);

        boolean b = bigDecimalCompareTo(mine, min, max);

        System.out.println(b);

    }

min < mine <= max

    import java.math.BigDecimal;

    public static boolean bigDecimalCompareTo1(BigDecimal mine, BigDecimal min, BigDecimal max){

        //算大于
        int num = mine.compareTo(min);
        boolean a = false;
        boolean b = false;

        if(num > 0){
            a = true;
        }

        //算小于  等于
        int num1 = mine.compareTo(max);
        if(num1 < 0 || num1 == 0){
            b = true;
        }

        //都符合
        if(a & b){
            return true;
        }

        return false;
    }

    public static void main(String[] args) {

        BigDecimal mine = new BigDecimal(3);
        BigDecimal min = new BigDecimal(1);
        BigDecimal max = new BigDecimal(3);

        boolean b = bigDecimalCompareTo1(mine, min, max);

        System.out.println(b);

    }

min <= mine <= max

    import java.math.BigDecimal;

    public static boolean bigDecimalCompareTo3(BigDecimal mine, BigDecimal min, BigDecimal max){

        //算大于 等于
        int num = mine.compareTo(min);
        boolean a = false;
        boolean b = false;

        if(num > 0 || num == 0){
            a = true;
        }

        //算小于 等于
        int num1 = mine.compareTo(max);
        if(num1 < 0 || num1 == 0){
            b = true;
        }

        //都符合
        if(a & b){
            return true;
        }

        return false;
    }

    public static void main(String[] args) {

        BigDecimal mine = new BigDecimal(3);
        BigDecimal min = new BigDecimal(1);
        BigDecimal max = new BigDecimal(3);

        boolean b = bigDecimalCompareTo3(mine, min, max);

        System.out.println(b);

    }

结语

bigDecimal的比较比起其他类型来说,算比较麻烦的,把这个记下来方便使用,也分享给需要的人
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值