小数保留两位,并四舍五入

最近在做平台数据的展示,要求对数字保留两位小数,并且四舍五入.虽然安卓有一个类可以做一些小数的处理,但是由于机器码的正反补,使得小数的四舍五入并不想我们所认为的那样,所以想办法自己写一个可以四舍五入的.
这个哥们总结的还挺到位的

首先我通过小数点将小数进行分割,之后我将分割之后的小数+0.005之后使用直接去掉多于小数的方法,这样就可以做到四舍五入了.借鉴了一下小数取整的技巧,果然有效.下面直接看代码吧!

if (money.contains(".")) {
                lastTwo = money.substring(money.lastIndexOf("."));
                content = money.substring(0, money.lastIndexOf("."));
            }

            if (lastTwo != null) {
                int towLength = lastTwo.length();
                if (towLength < 3) {
                    int temp = 3 - towLength;
                    for (int i = 0; i < temp; i++) {
                        lastTwo += "0";
                    }
                } else {
                    //小数点后保留两位,四舍五入
                    try {
                        double v = Double.parseDouble(lastTwo);
                        BigDecimal b = new BigDecimal(v + 0.005).setScale(2, BigDecimal.ROUND_DOWN);
                        lastTwo = b.toString();
                        lastTwo = lastTwo.substring(lastTwo.lastIndexOf("."));
                    } catch (Exception e) {
                        Log.e("MoneyFormatUtil", "格式化异常");
                    }
//                    lastTwo = lastTwo.substring(0, 3);
                }
            }
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值