public class conNumToBigChar { public static String convertTo(String number) { String hanStr = "整"; try{ String[] danwei = { "分", "角", "元", "拾", "佰", "扦", "万", "拾", "佰", "扦","亿","拾", "佰", "扦"}; String[] numHan = { "零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖"}; int point = number.indexOf("."); if(point==-1) { String numStr = number; int len = numStr.length(); for (int i = 0; i < len; i++) { int j = Integer.parseInt(numStr.substring(len - 1 - i, len - i)); System.out.println(j); hanStr = numHan[j] + danwei[(2 + i)]+hanStr; System.out.println("+"+hanStr+"+"); numStr = numStr.substring(0, len - 1 - i); System.out.println("-"+numStr+"-"); } } else { String numStr = number.substring(0,point); String last=number.substring(point+1); int len = numStr.length(); int lenlast = last.length(); // -使小数点后面只精确到角分 if(lenlast>2) { lenlast=2; last=last.substring(0,2); } if(lenlast<2) { lenlast=2; last=last+"0"; } // -------得到角分 for (int k = 0; k <lenlast; k++) { int p = Integer.parseInt(last.substring(lenlast - 1 - k, lenlast - k)); hanStr = numHan[p] + danwei[k]+hanStr; last = last.substring(0, lenlast- 1 - k); } // -------得到整数 for (int i = 0; i < len; i++) { int j = Integer.parseInt(numStr.substring(len - 1 - i, len - i)); hanStr = numHan[j] + danwei[ (2 + i)]+hanStr; numStr = numStr.substring(0, len - 1 - i); } } } catch(Exception ex) {} return hanStr; } public static void main(String[] args) { System.out.println(conNumToBigChar.convertTo("12.1")); } }