工具类-格式化小数
Posted chenglc
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了工具类-格式化小数相关的知识,希望对你有一定的参考价值。
import java.math.BigDecimal; import java.text.DecimalFormat; /** * ClassName: NumUtil<br/> * Description: <br/> * date: 2018/8/31 下午4:18<br/> * * @author chengluchao * @since JDK 1.8 */ public abstract class NumUtil static final String FORMAT2STR = "0.00"; static final String FORMAT8STR = "0.00000000"; static final DecimalFormat df2 = new DecimalFormat(FORMAT2STR); static final DecimalFormat df8 = new DecimalFormat(FORMAT8STR); /** * 格式化小数 * * @param num * @return */ public static BigDecimal parseDouble(String num) if (StrUtils.isEmpty(num)) return new BigDecimal(0.0); return new BigDecimal(num); /** * 格式化小数,可以为空 * * @param num * @return */ public static BigDecimal parseDoubleHaveNull(String num) if (StrUtils.isEmpty(num)) return null; return new BigDecimal(num); /** * 格式化小数-double * * @param num * @return */ public static double parseDoubleTrue(String num) if (StrUtils.isEmpty(num)) return 0.0; return Double.parseDouble(num); /** * 转小数,保留2位 * * @param num * @return */ public static BigDecimal StrTo2Double(String num) if (StrUtils.isEmpty(num)) num = FORMAT2STR; return new BigDecimal(num).setScale(2, java.math.BigDecimal.ROUND_HALF_UP); /** * 转小数,保留3位 * * @param num * @return */ public static BigDecimal StrTo3Double(String num) if (StrUtils.isEmpty(num)) num = "0.000"; return new BigDecimal(num).setScale(3, java.math.BigDecimal.ROUND_HALF_UP); /** * 转小数,保留8位 * * @param num * @return */ public static BigDecimal StrTo8Double(String num) if (StrUtils.isEmpty(num)) num = FORMAT8STR; return new BigDecimal(num).setScale(8, java.math.BigDecimal.ROUND_HALF_UP); /** * 格式化数字 * * @param num * @return */ public static int parseInt(String num) if (StrUtils.isEmpty(num)) return 0; return Integer.parseInt(num); /** * 格式化8位小数 * * @param num * @return */ @Deprecated public static String format8(Double num) if (num == null) num = 0.00000000; return df8.format(num); /** * 格式化8位小数 * * @param num * @return */ @Deprecated public static String format8Double(String num) if (num == null) return FORMAT8STR; return df8.format(Double.parseDouble(num)); /** * 格式化8位小数 * * @param num * @return */ public static String format8(String num) if (StrUtils.isEmpty(num)) return FORMAT8STR; BigDecimal bigDecimal = new BigDecimal(num); /* if ((0 > bigDecimal.compareTo(new BigDecimal("1"))) && (0 < bigDecimal.compareTo(new BigDecimal("-1")))) return format8Double(num); else return format8(bigDecimal); */ return format8(bigDecimal); /** * 格式化2位小数 * * @param num * @return */ public static String format2(String num) if (StrUtils.isEmpty(num)) num = FORMAT2STR; return format2(new BigDecimal(num)); /** * 格式化2位小数 * * @param num * @return */ @Deprecated public static String format2(Double num) if (num == null || num == 0.0) num = 0.00; if (num == 0.015) num = 0.02; return df2.format(num); /** * 格式化2位小数 * * @param num * @return */ public static String format2(BigDecimal num) if (num == null) return FORMAT2STR; return num.setScale(2, java.math.BigDecimal.ROUND_HALF_UP).toPlainString(); /** * 格式化2位小数 * * @param num * @return */ public static BigDecimal format2BigDecimal(BigDecimal num) if (num == null) return new BigDecimal("0.00"); return num.setScale(2, java.math.BigDecimal.ROUND_HALF_UP); /** * 格式化8位小数 * * @param num * @return */ public static String format8(BigDecimal num) if (num == null) return FORMAT8STR; return num.setScale(8, java.math.BigDecimal.ROUND_HALF_UP).toPlainString(); /** * 是否比0大 * num > 0 * * @return */ public static boolean biggerThan0(BigDecimal num) if (num == null) return false; if (0 < num.compareTo(new BigDecimal(0))) return true; return false; /** * 参数是否为null,为null时直接返回。部位null时做绝对值 * * @param val * @return * @author wuqingyu */ public static BigDecimal bigDecimalIsNull(BigDecimal val) if (val != null) val = val.abs(); else val = null; return val;
以上是关于工具类-格式化小数的主要内容,如果未能解决你的问题,请参考以下文章