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);
}
}