Java 作业--试验一 金额的中文大写方式

题意:

读入一个浮点数值,将其转化为中文金额的大写方式.

试验要求:

当金额为整数时,只表示整数部分,省略小数部分,并添加"整"字.

当金额中含有连续的0时,只需要一个"零"即可.

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

 


 

改良后:http://blog.csdn.net/allenle/archive/2006/04/04/650293.aspx

 


 

  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 }

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值