Rmb.java
public class Rmb { /** *RMBの基本情報と操作*@author weinee *@version 1.0 */ double number; //人民元の金額 private String[] hanArr = {"zero", "一", "二" , "三"、"四"、"五"、"鲁"、"旒"、"八"、"九" };//漢字の数を数える記号 private String[] UnitArr = {"", "十", "百", "千"};//漢字カウントユニット private String[] UnitArrs = {"万", "Billion", "万", "十大", "万" , " "Billion", "Wan", "Yuan"}; //単位を順番に追加します//private String[] UnitsArr = {"Wan", "Billion"}; //漢字を数える大きな単位 public Rmb( ){} /** *コンストラクターは RMB 金額を初期化します*@param 指定された初期化 RMB 番号*/ public Rmb(double number){ this.number = number; } /** *浮動小数点数を長い部分と小数部分の文字列に分解します。 RMB は整数に置き換えられます。小数部を取得するときに浮動小数点数の重要な値にエラーがあります。*@return 最初の配列要素が整数部で、2 番目が小数部です。 string*/ public String [] DivisionNum(){ double num = Math.round(number*100);//数値を整数に丸めますlong integerPart = (long)num; //減算を使用しないように小数点以下 2 桁を整数に変換します //double decimalsPart = num; -integerPart;//小数部分、クリティカルな場合にエラーが発生します String decmalsPartStr; //小数点の後の 2 桁目 long a = (integerPart/10) % 10; //小数点以下の最初の桁 integerPart /= 100; if(a==0 && b==0){ dicialsPartStr = null; ; } return new String[] {String.valueOf(integerPart), decimalsPartStr} } /** *数字を中国語の人民元の発音に変換します*@return中国語の RMB 発音の文字列形式を返します*/ public String toHanStr(){ String[] results = new String[9] //数値文字列 String[] を 4 桁ごとに分割して一時的に格納するために使用されます。 String[9];//各 4 桁のセグメンテーションの後に、変換された人民元の読み取り値を一時的に保存するために使用されます。 String result = "";//最終的な変換結果 String[] diveStr = diveNum(); //浮動小数点数を分解した長整数部と小数部の文字列を取得します。最初の配列要素は整数部の文字列で、2 番目は小数部の文字列です。 i =divideStr[0].length(), j=8; i>0&j>0 ; i-=4,j--){ try{ results[j-1] = diveStr[0].substring(i-4) 、 私); }catch(Exception e){ results[j-1] = DivisionStr[0].substring(0, i); } } if(results[8] == null){ resultStrs[8] = "全体"; }else if(results[8].charAt(1) == '0'){ resultStrs[8] = hanArr[results[8].charAt(0) - 48] + "角"; //ASCII コードに従って数字を中国語の大文字に変更し、hanArr array}else{ resultStrs[8] = hanArr[results[8].charAt(0) - 48] + "角" + hanArr[ results[8].charAt(1) - 48] + "ポイント" } for(int i=0; i<8; i++){ if(results[i] != null){ resultStrs[i] = ""; resultStrs[i] += hanArr[results[i].charAt(0) - 48] + UnitArr[results[i].length() - 1]; //ASCII コードと配列の長さに基づいて数値単位を選択します (int j=1; j<results[i].length(); j++ ) if(results[i].charAt(j-1) == '0' && results[i].charAt(j) != '0') resultStrs[i] += "zero" + hanArr[results[i] ].charAt(j) - 48] + UnitArr[results[i].length() - 1 - j]; //ASCII コードと配列の長さに基づいて数値単位を選択します if(results[i].charAt(j) != '0' ) resultStrs[i] += hanArr[results[i].charAt(j) - 48] +unitArr[results[i].length() - 1 - j] } } for (int i=0; i<8; i++ ){ if(resultStrs[i] != null){ 結果 += 結果Strs[i] + ユニットArrs[i] } 結果 += 結果を返します。RmbTest.java
public class RmbTest{ public static void main(String[] args) { double l; byte[] bye = new byte[50]; System.out.println("換算する人民元の金額を入力してください:"); { System .in.read(bye); }catch(Exception e){} 文字列 s = new String(bye) l = Double.parseDouble(s); s = r.toHanStr();以上がこの記事の全内容です。Javaを学ぶ皆さんのお役に立てれば幸いです。