美文网首页自定义view
BigDecimal 格式化保留2为小数,不足则补0

BigDecimal 格式化保留2为小数,不足则补0

作者: 嘿_叫我小王 | 来源:发表于2020-09-24 11:00 被阅读0次

最近调接口遇到一个问题,接口返回的是BigDecimal 类型的,但前端接收到的却是0,所以就有了这篇文章!

import java.math.BigDecimal;
import java.text.DecimalFormat;

public class NumberFormat {
    
    public static void main(String[] s){
        System.out.println(formatToNumber(new BigDecimal("3.435")));
        System.out.println(formatToNumber(new BigDecimal(0)));
        System.out.println(formatToNumber(new BigDecimal("0.00")));
        System.out.println(formatToNumber(new BigDecimal("0.001")));
        System.out.println(formatToNumber(new BigDecimal("0.006")));
        System.out.println(formatToNumber(new BigDecimal("0.206")));
    }
    /**
     * @desc 1.0~1之间的BigDecimal小数,格式化后失去前面的0,则前面直接加上0。
     * 2.传入的参数等于0,则直接返回字符串"0.00"
     * 3.大于1的小数,直接格式化返回字符串
     * @param obj传入的小数
     * @return
     */
    public static String formatToNumber(BigDecimal obj) {
        DecimalFormat df = new DecimalFormat("#.00");
        if(obj.compareTo(BigDecimal.ZERO)==0) {
            return "0.00";
        }else if(obj.compareTo(BigDecimal.ZERO)>0&&obj.compareTo(new BigDecimal(1))<0){
            return "0"+df.format(obj).toString();
        }else if(obj.compareTo(BigDecimal.ZERO)<0&&obj.compareTo(new BigDecimal(-1))>0){
            df = new DecimalFormat("0.00");
            return df.format(obj);
        }else {
            return df.format(obj).toString();
        }
    }
}

运行结果:

3.44
0.00
0.00
0.00
0.01
0.21

相关文章

网友评论

    本文标题:BigDecimal 格式化保留2为小数,不足则补0

    本文链接:https://www.haomeiwen.com/subject/ytszyktx.html