1. 程式人生 > >用java來轉換人民幣

用java來轉換人民幣

實驗目的:

編寫一個程式,將浮點數轉換成人民幣讀法字串,例如,將1006.333轉換為壹千零陸元參角參分。

實驗步驟:


import java.util.Scanner;

public class Rmb{
    private String[] hanArr={"零","壹","貳","叄","肆","伍","陸","柒","捌","玖"};
    private String[] unitArr_Integer={"拾","佰","仟","萬"};
    private String[] unitArr_Decimal={"分","角"};
   
    //針對整數部分
    private String toHanStr_Integer(String numStr){
        String result="";
        int numLen=numStr.length();
        for(int i=0;i<numLen;i++){
            int num=numStr.charAt(i)-48;
            if(i!=numLen-1&&num!=0){
                result+=(hanArr[num]+unitArr_Integer[numLen-2-i]);
            }
            else{
                if(hanArr[num].equals("零")&&result.substring(result.length()-1,result.length()).equals("零")){
                    continue;
                }
                else{
                    result+=hanArr[num];
                }
            }
        }
        return result;
    }
    //針對小數部分
    private String toHanStr_Decimal(String numStr)
    {
        String result="";
        int numLen = numStr.length();
        for (int i = 0; i < numLen; i++) {
            int num = numStr.charAt(i) - 48;
            if (i != numLen && num != 0) {
               result += (hanArr[num] + unitArr_Decimal[numLen - 1 - i]); 
            }
        }
        return result;
    }
    //對整數和小數進行分離,用String[]作為返回值型別
    private String[] divide(double num) {
        long zheng = (long) num;//強制轉換,得到整數部分
        long xiao = Math.round((num - zheng) * 100);//round函式,四捨五入接近整數
        return new String[] { zheng + "", String.valueOf(xiao) };
    }
    public static void main(String[] args) {
        System.out.println("該程式可以得到整數部分最大為五位的人民幣讀法轉換。"+"\n");
        System.out.print("讀入一個整數部分最大為五位的數:");
        Rmb nr = new Rmb();//根據類Rmb建立一個nr物件
        Scanner node=new Scanner(System.in);
        double input=node.nextDouble();
         System.out.println("要測的人民幣金額為:"+input);
        String[] str = nr.divide(input);//將整數部分和小數部分分開
        String Integer = nr.toHanStr_Integer(str[0]);//對整數部分進行人民幣讀法轉換
        String Decimal = nr.toHanStr_Decimal(str[1]);//對小數部分進行人民幣讀法轉換
        String Id = Integer + "元" + Decimal;//將整數小數組合在一起
        System.out.println(Id);
    }
}

實驗結果: