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

来源:互联网 发布:js 数组增加元素 编辑:程序博客网 时间:2024/06/06 10:38

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

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