| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2139 人关注过本帖, 1 人收藏
标题:[求助]数字转为大写
只看楼主 加入收藏
xbj222
Rank: 1
等 级:新手上路
帖 子:179
专家分:0
注 册:2006-2-6
收藏(1)
 问题点数:0 回复次数:8 
[求助]数字转为大写
请问如何把数字转为大写呢?
还有,如果我有2253000.000显示为2,225,000.000请问要怎么弄呢?就是做分隔符..谢谢!
搜索更多相关主题的帖子: 数字 分隔 
2006-07-04 15:25
Tiger5392
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:88
帖 子:2775
专家分:2237
注 册:2006-5-17
收藏
得分:0 
(1)数字转换为大写
nExpr=2253000
cExpr1=ALLTRIM(STR(nExpr))
cExpr2=""
FOR nCount=1 TO LEN(cExpr1)
cExpr2=cExpr2+SUBSTR("零壹贰叁肆伍陆柒捌玖",AT(SUBSTR(cExpr1,nCount,1),"0123456789")*2-1,2)
ENDFOR
?cExpr2

(2)数值型数据的分节
?TRANSFORM(2253000,"999,999,999.999")

感言:学以致用。 博客:http://www./blog/user14/65009/index.shtml email:Tiger5392@
2006-07-04 22:22
xbj222
Rank: 1
等 级:新手上路
帖 子:179
专家分:0
注 册:2006-2-6
收藏
得分:0 
谢谢!!
我说的数字转为大写是金额转为大写,如:2000元即显示为 贰仟元整 ,,可能我说的不清楚,不好意思..
如何把它显示在报表中呢???

(2)?TRANSFORM(2253000,"999,999,999.999")这个表单上能显示,但显示报表说类型不配,请问要怎么做才能显示在报表中呢?还是我设置错了?谢谢!!

2006-07-05 10:45
Tiger5392
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:88
帖 子:2775
专家分:2237
注 册:2006-5-17
收藏
得分:0 
显示在报表中就是修改报表中的需要显示的那个控件.
转换为大写金额的有许多情况。比如直接打印在印有元角分的类似支票上,直接转换就行了(2楼);如果用在没有任何提示的地方,元角分等还得自己打印出来,则要加上单位字符(拾佰仟万等)

感言:学以致用。 博客:http://www./blog/user14/65009/index.shtml email:Tiger5392@
2006-07-05 20:34
hu9jj
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:红土地
等 级:贵宾
威 望:400
帖 子:11857
专家分:43421
注 册:2006-5-13
收藏
得分:0 
给你一个转换程序,这个程序对于9位整数的金额是可以转换为符合习惯的大写数字。

je0=int(金额) &&取整数部份
je1=金额-je0 &&取小数部份
je1=je1*100 &&将小数变为两位整数
jec=alltr(str(je0)) &&将整数部份由数值型转换为字符型
ws=len(jec) &&计算整数部份长度
sz='零壹贰叁肆伍陆柒捌玖拾' &&汉字数字
dw='元拾佰仟万拾佰仟亿拾佰仟' &&汉字单位
if je1>0 &&进行小数部份转换
if je1>9 &&角位不为零
jed=subs(sz,int(je1/10)*2+1,2)+'角'
else &&角位为零
jed='零'
endif
je1=je1-int(je1/10)*10 &&计算分位
if je1>0 &&分大于零
jed=jed+subs(sz,je1*2+1,2)+'分'
else
jed=jed+'整'
endif
else
jed='整' &&角分位为零
endif
w0=.t. &&判断是否有连续零时使用
for i=1 to ws &&转换整数部份
s1=val(subs(jec,ws-i+1,1)) &&取出当前位
if s1=0 &&本位为零
if i=1.or.i=5.or.i=9 &&在元、万、亿位上
jed=subs(dw,i*2-1,2)+jed &&加单位、不加零
else
if w0 &&非连续零
jed='零'+jed &&加零不加单位
endif
endif
w0=.f. &&置已经有一个零标志
else &&本位不为零
jed=subs(sz,s1*2+1,2)+subs(dw,i*2-1,2)+jed
w0=.t. &&置非零标志
endif
endfor
repl 大写 with jed &&将大写金额赋予字段"大写"

活到老,学到老!http://www.(该域名已经被ISP盗卖了)E-mail:hu-jj@
2006-07-06 08:44
xbj222
Rank: 1
等 级:新手上路
帖 子:179
专家分:0
注 册:2006-2-6
收藏
得分:0 
谢谢~~~

2006-07-06 13:25
xbj222
Rank: 1
等 级:新手上路
帖 子:179
专家分:0
注 册:2006-2-6
收藏
得分:0 
显示在报表中就是修改报表中的需要显示的那个控件.
都试过了哦..还是不行...
如果我还想把表里面的金额字段的数据也用分隔符分开显示在报表中又怎么弄呢??

2006-07-06 14:57
xbj222
Rank: 1
等 级:新手上路
帖 子:179
专家分:0
注 册:2006-2-6
收藏
得分:0 
懂了,只要在报表的格式那里设置为999,999.999就行了..谢谢~~

2006-07-06 15:25
qczx3358
Rank: 2
等 级:论坛游民
帖 子:44
专家分:15
注 册:2014-1-19
收藏
得分:0 
回复 5楼 hu9jj
好感谢你噢,真的不错。
2014-01-29 09:58
快速回复:[求助]数字转为大写
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.046963 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved