Android 金钱计算BigDecimal 的使用

今天做了一个购物车的功能 ,设计到了钱的计算,使用到了BigDecimal 晚上回来总结下

这个BigDecimal 计算钱呢很好用

其主要有

1 add 加法 

2 subtract 减法

3 multiply 乘法

4 divide 除法

一般我们的价格都是getText 获取的,这里定义2个String 代表 获取的价格

1 加法计算

  BigDecimal num = new BigDecimal("1.01");
        BigDecimal num1 =new BigDecimal("2.02");
        System.out.print(num.add(num1));

2 减法计算

        BigDecimal num = new BigDecimal("1.01");
        BigDecimal num1 =new BigDecimal("2.02");
        System.out.print(num1.subtract(num));

3 乘法计算

        BigDecimal num = new BigDecimal("1.01");
        BigDecimal num1 =new BigDecimal("2.02");
        System.out.print(num1.multiply(num));

4 除法计算

        BigDecimal num = new BigDecimal("1.01");
        BigDecimal num1 =new BigDecimal("2.02");
        System.out.print(num1.divide(num));

当然也可以混合在一起使用

保留 小数点后面几位数可以使用setScale 方法

如下 这个是保留2位 

        BigDecimal num = new BigDecimal("1.01");
        BigDecimal num1 =new BigDecimal("2.02");
        BigDecimal total =  num.multiply(num1).setScale(2,RoundingMode.HALF_UP) ;
        System.out.print(total);

注意注意注意

声明的时候不要 直接指定float 类型的

如下

BigDecimal num = new BigDecimal(1.01);
BigDecimal num1 =new BigDecimal(2.02);

这样的精度就会丢失了

如果想修改类型看下代码四舍五入保留一位小数点 在转为float类型

 BigDecimal bar = new BigDecimal(item.getScore());
                BigDecimal num = new BigDecimal(2);
                float ratingBar = bar.divide(num).setScale(1,RoundingMode.HALF_UP).floatValue();
                Log.e("---------ratingbar", String.valueOf(ratingBar));

完美解决后台返回 8.9,等之类的分数,计初多少颗星星问题。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值