<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    [收藏]JAVA中金額的中文大寫方式

    Posted on 2006-04-02 15:34 ikingqu 閱讀(709) 評論(1)  編輯  收藏 所屬分類: JavaSE&JavaEE

    題意:

    讀入一個浮點數值,將其轉化為中文金額的大寫方式.

    試驗要求:

    當金額為整數時,只表示整數部分,省略小數部分,并添加"整"字.

    當金額中含有連續的0時,只需要一個"零"即可.

    10的表示方式.例如110--壹佰一拾元整,10---一拾元整

    ? 1 import java.io. * ;
    ? 2 class chineseMoney {
    ? 3 ??? private String number[] = { "" , " " , " " , " " , " " , " " , " " , " " , " " , " " } ;
    ? 4 ??? private String unit[] = { " " , " " , " " , " " , " " , " " , " " , " " , " " , " " , " " } ;
    ? 5 ??? private String small[] = { " " , " " } ;
    ? 6 ??? private String strNumber,strUnit,strAll;
    ? 7
    ? 8 ??? private String onlyInt( int intInt)
    ? 9 ??? {
    10 ??????? String strInt;
    11 ??????? strInt = String.valueOf(intInt);
    12 ??????? strNumber = "" ;strUnit = "" ;strAll = "" ;
    13 ??????? int l = strInt.length ();
    14 ??????? int j,k,zeorCount;
    15 ??????? zeorCount = 0 ;
    16 ??????? for (k = 0 ;k < l;k ++ )
    17 ??????? {
    18 ??????????? String strTemp = strInt.substring(k,k + 1 );
    19 ??????????? int intTemp = Integer.parseInt(strTemp);
    20 ??????????? strNumber = number[intTemp];
    21 ??????????? j = l - 1 - k;
    22 ??????????? strUnit = unit[j];
    23 ??????????? if (intTemp == 0 )
    24 ??????????? {
    25 ??????????????? if (zeorCount == 0 )
    26 ??????????????? {
    27 ??????????????????? strUnit = strUnit.replace( ' ' , ' ' );
    28 ??????????????????? strUnit = strUnit.replace( ' ' , ' ' );
    29 ??????????????????? strUnit = strUnit.replace( ' ' , ' ' );
    30 ??????????????????? strUnit = strUnit.replace( ' ' , ' ' );???
    31 ??????????????? }

    32 ??????????????? else
    33 ??????????????? {
    34 ??????????????????? strUnit = strUnit.replaceAll( " " , "" );
    35 ??????????????????? strUnit = strUnit.replaceAll( " " , "" );
    36 ??????????????????? strUnit = strUnit.replaceAll( " " , "" );
    37 ??????????????????? strUnit = strUnit.replaceAll( " " , "" );???????
    38 ??????????????? }

    39 ??????????????? zeorCount ++ ;
    40 ??????????? }
    ???????
    41 ??????????? strAll += strNumber + strUnit;
    42 ??????? }

    43 ??????? return strAll;
    44 ???
    45 ??? }

    46 ???
    47 ??? private String onlySmall( int intSmall)
    48 ??? {
    49 ???????
    50 ??????? strNumber = "" ;strUnit = "" ;strAll = "" ;
    51 ??????? String strSmall,strTemp;
    52 ??????? strSmall = String.valueOf(intSmall);
    53 ??????? int i;
    54 ??????? if (intSmall >= 10 )
    55 ??????? {
    56 ??????????? for (i = 0 ;i < strSmall.length();i ++ )
    57 ??????????? {
    58 ??????????????? strTemp = String.valueOf(intSmall).substring(i,i + 1 );
    59 ??????????????? if (Integer.parseInt(strTemp) != 0 )
    60 ??????????????? {
    61 ??????????????????? strNumber = number[Integer.parseInt(strTemp)];
    62 ??????????????????? strUnit = small[i];???
    63 ??????????????????? strAll += strNumber + strUnit;
    64 ??????????????? }

    65 ??????????? }

    66 ??????? }

    67 ??????? else
    68 ??????? {
    69 ??????????? if (intSmall != 0 )
    70 ??????????? {
    71 ??????????????? strNumber = number[intSmall];
    72 ??????????????? strUnit = small[ 1 ];???
    73 ??????????????? strAll += strNumber + strUnit;
    74 ??????????? }

    75 ??????? }

    76
    77 ??????? return strAll;
    78 ??? }

    79 ???
    80 ??? public String getChineseMoney( double number)
    81 ??? {
    82 ??????? // 四舍五入
    83 ??????? number = (number * 100 + 0.5 ) / 100 ;
    84 ???????
    85 ??????? String strAll,strChineseInt,strChineseSmall,strZheng;;
    86 ??????? int intInt,intSmall;
    87 ??????? strChineseInt = "" ;strChineseSmall = "" ;strZheng = "" ;
    88 ???????
    89 ??????? // 整數部分
    90 ??????? intInt = ( int )( number * 100 / 100 );
    91 ??????? if (intInt != 0 )
    92 ??????? {
    93 ??????????? strChineseInt = onlyInt(intInt);
    94 ??????? }

    95 ??????? // 小數部分
    96 ??????? double temp = (number - intInt) * 100 * 100 / 100 ;
    97 ??????? // 對小數部分四舍五入
    98 ??????? intSmall = ( int )(temp * 100 + 0.5 ) / 100 ;
    99 ??????? if (intSmall != 0 )
    100 ??????? {
    101 ??????????? strChineseSmall = onlySmall(intSmall);
    102 ??????? }

    103 ??????? else
    104 ??????? {
    105 ??????????? strZheng = " " ;
    106 ??????? }

    107 ??????? strAll = strChineseInt + strChineseSmall + strZheng;
    108 ??????? return strAll;
    109 ??? }

    110 ??? public static void main(String args[]) throws IOException
    111 ??? {
    112 ??????? chineseMoney cm = new chineseMoney();
    113 ??????? double money;
    114 ??????? String strMoney,strChineseMoney;
    115 ??????? strMoney = "" ;
    116 ??????? // 讀取
    117 ??????? System.out.println( " 輸入貨幣(四舍五入): " );
    118 ??????? BufferedReader cin = new BufferedReader( new InputStreamReader( System.in));
    119 ??????? strMoney = cin.readLine();
    120 ??????? money = Double.parseDouble(strMoney);
    121 ??????? strChineseMoney = cm.getChineseMoney(money);
    122 ??????? System.out.println(strChineseMoney);
    123 ??? }

    124 }



    ?

    Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=641419

    Feedback

    # re: [收藏]JAVA中金額的中文大寫方式  回復  更多評論   

    2011-02-18 09:58 by oplife@163.com
    這個有個地方不太對,當金額為800.00時,輸出的是:
    捌佰零圓整

    多了個零

    posts - 4, comments - 5, trackbacks - 0, articles - 60

    Copyright © ikingqu

    主站蜘蛛池模板: 国产AV无码专区亚洲AV琪琪| 亚洲国产美女精品久久| 美女视频免费看一区二区| 国产无遮挡色视频免费视频| 亚洲精品无码专区| 国产在线观看www鲁啊鲁免费| 亚洲AV网一区二区三区| 亚洲国产精品人人做人人爱| 久久九九免费高清视频| 亚洲愉拍99热成人精品热久久 | 亚洲精品无码久久久久久| 免费av欧美国产在钱| 日本亚洲中午字幕乱码| 亚洲欧洲精品成人久久奇米网| 一级一级一片免费高清| 久久综合图区亚洲综合图区| 最好看的中文字幕2019免费| 精品亚洲AV无码一区二区三区| 暖暖免费高清日本中文| sss日本免费完整版在线观看| 亚洲狠狠婷婷综合久久久久| 曰批视频免费40分钟试看天天| 亚洲高清视频在线| 亚洲国产一区二区三区| 日本免费在线中文字幕| 国产亚洲玖玖玖在线观看| 亚洲国产成人精品久久久国产成人一区二区三区综 | 成人无码区免费视频观看 | 亚洲国产综合精品中文字幕| 国产午夜成人免费看片无遮挡| 亚洲毛片在线免费观看| 免费a级毛片高清视频不卡| 全部在线播放免费毛片| 亚洲成色在线影院| 啦啦啦www免费视频| 国产一级a毛一级a看免费人娇| 亚洲日本视频在线观看| 亚洲国产精品毛片av不卡在线| 日本最新免费网站| 国产高潮流白浆喷水免费A片 | 亚洲系列国产精品制服丝袜第|