数字小写到英文大写的转换

  1   
  2  
  3FUNCTION convertsz(sz)   
  4  
  5\'PARAMETERS sz   
  6  
  7\'PRIVATE xs,sz1,sz2,sz3   
  8  
  9IF sz > 1000000000 then \'超过处理范围提示   
 10  
 11convertsz=\"Number is too big\" \'数字大于10亿,超过处理范围!   
 12exit FUNCTION   
 13END IF   
 14  
 15sz=INT(sz*100+0.5)/100 \' 小数超过两位四舍五入   
 16  
 17xs=((sz-int(sz))*100) MOD 100 \' 取小数点后两位有效数字   
 18  
 19IF xs>0 then   
 20  
 21\'cha=\" AND\"&conv3(xs)&\" CENTS\" \' 转换小数   
 22cha=\" AND \"&xs&\" CENTS\"   
 23  
 24ELSE   
 25  
 26cha=\"\"   
 27  
 28END IF   
 29  
 30sz1=INT((sz MOD 1000)) \' sz1为百、十、个3位数字   
 31  
 32sz=INT(sz/1000) \' sz为千位以上数字(含千位)   
 33  
 34cha=conv3(sz1)&cha \' 转换(sz1)   
 35  
 36IF sz>0 then   
 37  
 38sz2=(sz MOD 1000) \' sz2为十万、万、千3位数字   
 39  
 40sz=INT(sz/1000) \' sz为百万位以上数字(含百万位)   
 41  
 42IF sz2=0 then   
 43  
 44IF sz1=0 then \' (sz2)如果为\'0\',判断在百位之前是否加\'AND\'   
 45  
 46cha=cha   
 47  
 48ELSE   
 49  
 50cha=\" AND\"&cha   
 51  
 52END IF   
 53  
 54ELSE   
 55  
 56cha=conv3(sz2)&\" THOUSAND\"&cha \' 如果不为\'0\'转换(sz2)   
 57  
 58END IF   
 59  
 60IF sz>0 then   
 61  
 62sz3=(sz MOD 1000) \' sz3为亿、千万、百万3位数字   
 63  
 64cha=conv3(sz3)&\" MILLION\"&cha \' 转换(sz3)   
 65  
 66END IF   
 67  
 68END IF   
 69  
 70\'cha=\"DOLLAR\"&cha \' 在转换的结果之前加\'DOLLAR\'   
 71  
 72\'RETURN cha   
 73convertsz=cha   
 74  
 75end FUNCTION   
 76  
 77  
 78FUNCTION conv3(je)   
 79  
 80\'PARAMETERS je   
 81  
 82\'PRIVATE jews,je1,je2,je3,tmp   
 83  
 84IF je<=0 then   
 85  
 86convertsz=\"\"   
 87exit FUNCTION   
 88  
 89END IF   
 90  
 91je1=(je MOD 10)   
 92  
 93je=INT(je/10)   
 94  
 95IF je=0 then \' 判断数字位数(1-3)并把3位数字分别存放在je1、je2、je3中   
 96  
 97jews=1   
 98  
 99ELSE   
100  
101je2=(je MOD 10)   
102  
103je=INT(je/10)   
104  
105IF je=0 then   
106  
107jews=2   
108  
109ELSE   
110  
111je3=(je MOD 10)   
112  
113jews=3   
114  
115END IF   
116  
117END IF   
118  
119IF jews=1 then   
120  
121tmp=conv1(je1) \'如果位数为1,直接转换   
122  
123conv3=tmp   
124  
125\'exit FUNCTION   
126\'RETURN tmp   
127  
128ELSE   
129  
130IF je1+10*je2<20 then \' 转换20以下数字   
131  
132tmp=conv1(je1+10*je2)   
133  
134ELSE \' 转换20-99数字   
135  
136IF je1=0 then   
137  
138tmp=conv2(je2)   
139  
140ELSE   
141  
142\'tmp=conv2(je2)&\" -\"&conv1(je1)   
143tmp=conv2(je2)&conv1(je1)   
144  
145  
146END IF   
147  
148END IF   
149  
150IF jews=3 then \'转换百位数字   
151  
152IF je1+10*je2=0 then   
153  
154tmp=conv1(je3)&\" HUNDRED\"   
155  
156ELSE   
157  
158IF je1+10*je2<20 then   
159  
160tmp=conv1(je3)&\" HUNDRED AND\"&tmp   
161  
162ELSE   
163  
164tmp=conv1(je3)&\" HUNDRED\"&tmp   
165  
166END IF   
167  
168END IF   
169  
170END IF   
171  
172conv3=tmp   
173  
174END IF   
175  
176end FUNCTION   
177  
178  
179FUNCTION conv2(SUM)   
180  
181\'PARAMETERS SUM   
182aaa=\"\"   
183select CASE SUM   
184  
185CASE 2   
186  
187aaa=\" TWENTY\"   
188  
189CASE 3   
190  
191aaa=\" THIRTY\"   
192  
193CASE 4   
194  
195aaa=\" FORTY\"   
196  
197CASE 5   
198  
199aaa=\" FIFTY\"   
200  
201CASE 6   
202  
203aaa=\" SIXTY\"   
204  
205CASE 7   
206  
207aaa=\" SEVENTY\"   
208  
209CASE 8   
210  
211aaa=\" EIGHTY\"   
212  
213CASE 9   
214  
215aaa=\" NINETY\"   
216  
217  
218  
219END select   
220  
221conv2=aaa   
222  
223end FUNCTION   
224  
225  
226FUNCTION conv1(SUM)   
227  
228\'PARAMETERS SUM   
229aaa=\"\"   
230select CASE SUM   
231  
232CASE 1   
233  
234aaa=\" ONE\"   
235  
236CASE 2   
237  
238aaa=\" TWO\"   
239  
240CASE 3   
241  
242aaa=\" THREE\"   
243  
244CASE 4   
245  
246aaa=\" FOUR\"   
247  
248CASE 5   
249  
250aaa=\" FIVE\"   
251  
252CASE 6   
253  
254aaa=\" SIX\"   
255  
256CASE 7   
257  
258aaa=\" SEVEN\"   
259  
260CASE 8   
261  
262aaa=\" EIGHT\"   
263  
264CASE 9   
265  
266aaa=\" NINE\"   
267  
268CASE 10   
269  
270aaa=\" TEN\"   
271  
272CASE 11   
273  
274aaa=\" ELEVEN\"   
275  
276CASE 12   
277  
278aaa=\" TWELVE\"   
279  
280CASE 13   
281  
282aaa=\" THIRTEEN\"   
283  
284CASE SUM=14   
285  
286aaa=\" FOURTEEN\"   
287  
288CASE 15   
289  
290aaa=\" FIFTEEN\"   
291  
292CASE 16   
293  
294aaa=\" SIXTEEN\"   
295  
296CASE 17   
297  
298aaa=\" SEVENTEEN\"   
299  
300CASE 18   
301  
302aaa=\" EIGHTEEN\"   
303  
304CASE SUM=19   
305  
306aaa=\" NINETEEN\"   
307  
308  
309  
310END select   
311  
312conv1=aaa   
313  
314end FUNCTION   
315  
316  
317fff=123456789.45   
318  
319response.write fff&\"

<br/>

1\"   
2  
3xx=convertsz(fff)   
4  
5  
6response.write xx   
7  
Published At
Categories with Web编程
Tagged with
comments powered by Disqus