public class ConvertMoney {
public static void main(String[] args) {
System.out.println(convert(6800000300.23D));
}
/**
* 阿拉伯数字转换为中文大写--只支持到千亿位,不支持小数转换
* @param args
*/
public static String convert(double n) {
char[] d = { '零', '壹', '贰', '叁', '肆', '伍', '陆', '柒', '捌', '玖' };
char[] d2={'元','拾','佰','仟','万','拾','佰','仟','亿','拾','佰','仟'};
String str=String.format("%.0f", n);
StringBuilder sb=new StringBuilder();
System.out.println(str);
if(str.length()>d2.length) {
System.out.println("金额太大,不支持转换!");
return null;
}
for(int i=0;i<str.length();i++) {
sb.append(d[str.charAt(i)-'0']);
sb.append(d2[str.length()-i-1]);
}
str=sb.toString();
str=str.replaceAll("零[拾佰仟]", "零");
str=str.replaceAll("零{2,}", "零");
str=str.replaceAll("零([元万亿])", "$1");
str=str.replaceAll("亿万", "亿");
return str;
}
}
以上程序输出:
6800000300
陆拾捌亿零叁佰元