一、前言
通过定义MoneyUtil金额工具类,对金额数字字符串进行转换为"BigDecimal"、保留两位小数、四舍五入、排除科学计数法的影响等常用处理,详情代码示例说明部分。
二、代码示例import java.lang.reflect.Field;@b@import java.lang.reflect.InvocationTargetException;@b@import java.lang.reflect.Method;@b@import java.math.BigDecimal; @b@ @b@public class MoneyUtil {@b@@b@ private static final String HINT = "暂无数据";@b@ private static final String PROMPT = "即将支持";@b@@b@ /**@b@ * 先将传入的字符串转换为"BigDecimal",保留两位小数后再转回String,然后在数字型字符串千分位加逗号,如果没有显示“暂无数据”@b@ * @b@ * @param str@b@ * @return@b@ */@b@ public static String moneyDataDispose(String str) {@b@ if (str != null) {@b@ BigDecimal tmpBigDecimal = new BigDecimal(str);@b@ str = StrUtil.toString(tmpBigDecimal.setScale(2, BigDecimal.ROUND_HALF_UP));@b@ boolean neg = false;@b@ if (str.startsWith("-")) { // 处理负数@b@ str = str.substring(1);@b@ neg = true;@b@ }@b@ String tail = null;@b@ if (str.indexOf('.') != -1) { // 处理小数点@b@ tail = str.substring(str.indexOf('.'));@b@ str = str.substring(0, str.indexOf('.'));@b@ }@b@ StringBuilder sb = new StringBuilder(str);@b@ sb.reverse();@b@ for (int i = 3; i