分享
 
 
 

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

王朝java/jsp·作者佚名  2006-05-27
窄屏简体版  字體: |||超大  

题意:

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

试验要求:

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

当金额中含有连续的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

//是否在number中

9

private boolean IsInNumber(String strNumber)

10

...{

11

boolean inNumber=false;

12

for (int i=0;i<9;i++)

13

...{

14

if (strNumber.compareTo (number[i])==0) inNumber=true;

15

}

16

return inNumber;

17

}

18

19

20

private String SplitChineseNumber(int intUnit,String strInt)

21

...{

22

int l=strInt.length ();

23

int j,k,zeorCountTemp=0;

24

String strUnit="",strNumber="",strAll="";

25

26

//判断在千万到万位 是否全为0,是的话,不返回“万”,返回“”;

27

boolean temp=false;

28

for (k=0;k<l;k++)

29

...{

30

String strTemp=strInt.substring(k,k+1);

31

int intTemp=Integer.parseInt(strTemp);

32

33

if (intTemp!=0) temp=true;

34

}

35

if (temp==false)

36

...{

37

if (intUnit==5)return "";

38

}

39

40

41

int checkK=0;

42

//正式开始转换

43

for (k=0;k<l;k++)

44

...{

45

String strTemp=strInt.substring(k,k+1);

46

int intTemp=Integer.parseInt(strTemp);

47

strNumber= number[intTemp];

48

49

//j 从

50

j=l-1-k;

51

52

strUnit=unit[j];

53

54

55

//数值+单位

56

//如果数值=0,数值=“”

57

if (intTemp==0)

58

...{

59

//

60

if (zeorCountTemp==0)

61

...{

62

//单位=零

63

strUnit=strUnit.replace('拾','零');

64

strUnit=strUnit.replace('佰','零');

65

strUnit=strUnit.replace('仟','零');

66

}

67

else

68

...{

69

//多零情况下,单位=“”

70

strUnit=strUnit.replaceAll("拾","");

71

strUnit=strUnit.replaceAll("佰","");

72

strUnit=strUnit.replaceAll("仟","");

73

}

74

zeorCountTemp++;

75

}

76

checkK=k;

77

strAll+=strNumber+strUnit;

78

}

79

80

return strAll;

81

}

82

83

private String onlyInt(int intInt)

84

...{

85

String strInt;

86

strInt=String.valueOf(intInt);

87

int l=strInt.length();

88

89

String strAll="";

90

//按照四位 一分隔 来计算

91

if (l>8)//亿

92

...{

93

strAll+=this.SplitChineseNumber(9,strInt.substring(0,l-8))+"亿";

94

strAll+=this.SplitChineseNumber(5,strInt.substring(l-8,l-4));

95

strAll+=this.SplitChineseNumber(1,strInt.substring(l-4,l))+"元";

96

}

97

else if (l>4)//万

98

...{

99

strAll+=this.SplitChineseNumber(5,strInt.substring(0,l-4));

100

strAll+=this.SplitChineseNumber(1,strInt.substring(l-4,l))+"元";

101

102

}

103

else if (l>0)

104

...{

105

strAll+=this.SplitChineseNumber(1,strInt)+"元";

106

}

107

//

108

//

109

//

110

//

111

// 100101000

112

int checkL=strAll.length();

113

114

char strTemp2;

115

for (int k=1;k<checkL;k++)

116

...{

117

strTemp2=strAll.charAt(k);

118

if (strTemp2=='零')

119

...{

120

//判断零的前后是否有数字,无数字则删除这个零

121

String strBeforeTemp=strAll.substring(k-1,k);

122

String strAfterTemp=strAll.substring(k+1,k+2);

123

if (!this.IsInNumber(strBeforeTemp)&&!this.IsInNumber(strAfterTemp))

124

...{

125

strBeforeTemp=strAll.substring(0,k);

126

strAfterTemp=strAll.substring(k+1,checkL);

127

strAll= strBeforeTemp+strAfterTemp;

128

break;

129

}

130

131

}

132

}

133

134

return strAll;

135

136

}

137

138

private String onlySmall(int intSmall)

139

...{

140

String strNumber,strUnit,strAll;

141

strNumber="";strUnit="";strAll="";

142

String strSmall,strTemp;

143

strSmall=String.valueOf(intSmall);

144

int i;

145

if (intSmall>=10)

146

...{

147

for (i=0;i<strSmall.length();i++)

148

...{

149

strTemp=String.valueOf(intSmall).substring(i,i+1);

150

if (Integer.parseInt(strTemp)!=0)

151

...{

152

strNumber=number[Integer.parseInt(strTemp)];

153

strUnit=small[i];

154

strAll+=strNumber+strUnit;

155

}

156

}

157

}

158

else

159

...{

160

if (intSmall!=0)

161

...{

162

strNumber=number[intSmall];

163

strUnit=small[1];

164

strAll+=strNumber+strUnit;

165

}

166

}

167

168

return strAll;

169

}

170

171

public String getChineseMoney(double number)

172

...{

173

//四舍五入

174

number=(number*100+0.5)/100;

175

176

String strAll,strChineseInt,strChineseSmall,strZheng;;

177

int intInt,intSmall;

178

strChineseInt="";strChineseSmall="";strZheng="";

179

180

//整数部分

181

intInt=(int)( number*100/100);

182

if (intInt!=0)

183

...{

184

strChineseInt=onlyInt(intInt);

185

}

186

//小数部分

187

double temp=(number-intInt)*100*100/100;

188

//对小数部分四舍五入

189

intSmall=(int)(temp*100+0.5)/100;

190

if (intSmall!=0)

191

...{

192

strChineseSmall=onlySmall(intSmall);

193

}

194

else

195

...{

196

strZheng="整";

197

}

198

strAll=strChineseInt+strChineseSmall+strZheng;

199

return strAll;

200

}

201

public static void main(String args[]) throws IOException

202

...{

203

chineseMoney cm=new chineseMoney();

204

double money;

205

String strMoney,strChineseMoney;

206

strMoney="";

207

//读取

208

System.out.println("输入货币(四舍五入):");

209

BufferedReader cin = new BufferedReader(new InputStreamReader( System.in));

210

strMoney = cin.readLine();

211

money=Double.parseDouble(strMoney);

212

//money=12346.465;//Double.parseDouble(strMoney);

213

strChineseMoney=cm.getChineseMoney(money);

214

System.out.println(strChineseMoney);

215

}

216

}

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有