import java.text.DecimalFormat; public class NumberUtil { /** * 0与#的区别 * 0的话如果有值显示,没有值显示0 * #的话如果有值显示,没有值不显示 */ public static DecimalFormat FORMAT_COMMA_STYLE = new DecimalFormat(",##0.00"); public static DecimalFormat FORMAT_COMMA_ZERO_STYLE = new DecimalFormat(",##0"); public static DecimalFormat FORMAT_PERCENT_STYLE = new DecimalFormat("#0.00%"); // 将数字转化为汉字的数组,因为各个实例都要使用所以设为静态 private static final char[] cnNumbers = { '零', '一', '二', '三', '四', '五', '六', '七', '八', '九' }; // 供分级转化的数组,因为各个实例都要使用所以设为静态 private static final char[] series = { '十', '百', '千', '万', '十', '百', '千', '亿' }; /** * 数字转换成大写中文 */ public static final String parseToChinese(String original) { // 成员变量初始化 String integerPart = ""; String floatPart = ""; if (original.contains(".")) { // 如果包含小数点 int dotIndex = original.indexOf("."); integerPart = original.substring(0, dotIndex); floatPart = original.substring(dotIndex + 1); } else { // 不包含小数点 integerPart = original; } StringBuffer sb = new StringBuffer(); // 整数部分处理 for (int i = 0; i < integerPart.length(); i++) { int number = getNumber(integerPart.charAt(i)); sb.append(cnNumbers[number]); if(i <= integerPart.length() - 2){ sb.append(series[integerPart.length() - 2 - i]); } } // 小数部分处理 if (floatPart.length() > 0) { sb.append("点"); for (int i = 0; i < floatPart.length(); i++) { int number = getNumber(floatPart.charAt(i)); sb.append(cnNumbers[number]); } } // 返回拼接好的字符串 return sb.toString(); } /** * 将字符形式的数字转化为整形数字 */ private static int getNumber(char c) { String str = String.valueOf(c); return Integer.parseInt(str); } /** * 千分位不保留两位小数 * @param object * @return */ public static String NUM_FORMAT_COMMA_ZERO(Object object) { if(object==null){ return "--"; } return FORMAT_COMMA_ZERO_STYLE.format(object); } /** * 千分位两位小数 * @param object * @return */ public static String NUM_FORMAT_COMMA(Object object) { if(object==null){ return "--"; } return FORMAT_COMMA_STYLE.format(object); } /** * 百分比两位小数 * @param object * @return */ public static String NUM_FORMAT_PERCENT(Object object) { if(object==null){ return "--"; } return FORMAT_PERCENT_STYLE.format(object); } }