美文网首页
2021-07-24 数字操作工具 MathUtil

2021-07-24 数字操作工具 MathUtil

作者: fjasmin | 来源:发表于2021-07-24 11:30 被阅读0次
public class MathUtil {
    
    public static double doubleValue(String source) {
        if (null == source || source.trim().equals("") || source.trim().equalsIgnoreCase("NULL")) {
            return 0.00;
        }

        //^-[1-9]\d*$ 匹配负整数    ^-[1-9]\d*\.\d*|-0\.\d*[1-9]\d*$ 匹配负浮点数
        if (source.matches("^-[1-9]\\d*$") || source.matches("^-[1-9]\\d*\\.\\d*|-0\\.\\d*[1-9]\\d*$")) {
            return 0.00;
        }
        
        return Double.valueOf(source);
    }
    
    public static double scaleRoundHalfUp(double value, int scale) {
        double reVal = 0;
        try {
            reVal = new BigDecimal(value).setScale(scale, BigDecimal.ROUND_HALF_UP).doubleValue();
        }catch (Exception e){

        }
        return  reVal;
    }
    
    public static String scaleRoundHalfUp(Object value, int scale) {
        return new BigDecimal(value.toString()).setScale(scale, BigDecimal.ROUND_HALF_UP).toString();
    }
    
    /**
     * 保留n位小数,默认是保留两位小数
     */
    public static double scaleDouble(double number, int scale, int mode) {
        scale = scale <= 0 ? 2 : scale;
        BigDecimal b = new BigDecimal(number+"");
        return b.setScale(scale, mode).doubleValue();
    }
    
    /**
     * 保留n位小数,默认是保留两位小数
     */
    public static double scaleDouble(String number, int scale, int mode) {
        scale = scale <= 0 ? 2 : scale;
        BigDecimal b = new BigDecimal(number);
        return b.setScale(scale, mode).doubleValue();
    }

    /**
     * 保留n位小数,默认是保留两位小数
     */
    public static float scaleFloat(double number, int scale, int mode) {
        scale = scale <= 0 ? 2 : scale;
        BigDecimal b = new BigDecimal(number+"");
        return b.setScale(scale, mode).floatValue();
    }

    /**
     * 保留n位小数,默认是保留两位小数
     */
    public static float scaleFloat(String number, int scale, int mode) {
        scale = scale <= 0 ? 2 : scale;
        BigDecimal b = new BigDecimal(number+"");
        return b.setScale(scale, mode).floatValue();
    }
    
}

相关文章

网友评论

      本文标题:2021-07-24 数字操作工具 MathUtil

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