float去掉小数点后面的0、double去掉小数点后面的0

一、需求

工作中我们经常会碰到 把一个小数最后的0去掉的问题:比如 10.220 ,要求输出 10.22 这样的,那我们就需要给这个数字格式化了

二、方案

(一)正则删除

    private static String stripTrailingZeros1(Number num) {
        String str = String.valueOf(num);
        if(str.indexOf(".") > 0){
            str = str.replaceAll("0+?$", "");//去掉多余的0
            str = str.replaceAll("[.]$", "");//如最后一位是.则去掉
        }
        return str;
    }

(二)借助BigDecimal 来删除

   private static String stripTrailingZeros2(Number num) {
       BigDecimal bd = new BigDecimal(String.valueOf(num));
       return bd.stripTrailingZeros().toPlainString();
   }

评论

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×