package day01; /** * Created by sherry on 000019/3/19 14:27. */ public class RmbToChar { public static void main(String[] args) { /*输入要求:10000以内的小数,对于特殊情况未做判断*/ rmbToChar(15523.451); } private static void rmbToChar(double v) { String num = Double.toString(v); /*大写码表*/ String[] numberMap = {"零","壹","贰","叁","肆","伍","陆","柒","扒","玖"}; /*整数部分*/ String integerPart = num.substring(0,num.indexOf(".")); /*小数部分*/ String decimalsPart = num.substring(num.indexOf(".")+1); System.out.println(integerPart+"."+decimalsPart); char[] integerParts = integerPart.toCharArray(); char[] decimalsParts = decimalsPart.toCharArray(); for (int i = 0;i < integerParts.length;i++){ System.out.print(numberMap[Integer.parseInt(String.valueOf(integerParts[i]))]); switch (integerParts.length-i){ case 5: System.out.print("万"); break; case 4: System.out.print("仟"); break; case 3: System.out.print("佰"); break; case 2: System.out.print("拾"); break; default: System.out.print("元"); } } for (int i = 0;i < decimalsParts.length;i++){ System.out.print(numberMap[Integer.parseInt(String.valueOf(decimalsParts[i]))]); switch (i){ case 0: System.out.print("角"); break; case 1: System.out.print("分"); break; case 2: System.out.print("厘"); break; default: System.out.print("毫"); } } } }