JAVA中金额的中文大写方式
2006-03-28 13:52
363 查看
题意:
读入一个浮点数值,将其转化为中文金额的大写方式.
试验要求:
当金额为整数时,只表示整数部分,省略小数部分,并添加"整"字.
当金额中含有连续的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
}
相关文章推荐
- Java 作业 金额的中文大写方式
- Java 作业--试验一(改良) 金额的中文大写方式
- Java 作业--试验一 金额的中文大写方式
- java阿拉伯数字表示的金额转换成中文大写金额
- 转《将数字转为中文金额的大写方式(C++版)》
- java实现金额数字转换为中文大写
- java实现整数转化为中文大写金额的方法
- java代码中将金额阿拉伯数字转化为中文大写
- java工具类数字金额转中文大写
- 金额数字转中文大写(转)(java)
- Java中实现数字金额到中文大写字符的转换!!
- Java编写的金额转中文大写
- 将数字转为中文金额的大写方式(C++版)
- 关于转换大写中文金额-新学的java函数整理
- java实现数字金额转换中文大写金额
- Java-金额小数转换成中文大写金额
- Java中实现数字金额到中文大写字符的转换!! 选择自 netfalcon 的 Blog
- java小项目之金额转中文大写(Swing)
- java代码:金融系统中,将数字转换成中文金额大写形式
- 将数字转为中文金额的大写方式(C++版)