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

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u013055213/article/details/78142886

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

首先我通过小数点将小数进行分割,之后我将分割之后的小数+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);
                }
            }

猜你喜欢

转载自blog.csdn.net/u013055213/article/details/78142886