⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 transformation.txt

📁 这是一个将浮点数转化为大写中文金额的方法,主要使用在程序里进行转换
💻 TXT
字号:
读入一个浮点数值,将其转化为金额的中文大写方式. 


试验要求: 


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


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


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



-------------------------------------------------------------------------------- 

1import java.io.*; 

2class 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;k29 ...{ 

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;k44 ...{ 

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;k116 ...{ 

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;i148 ...{ 

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} 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -