| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1278 人关注过本帖
标题:请帮忙解决怎么将1至2位的阿拉伯数字转换成中文数字
只看楼主 加入收藏
shenkj001
Rank: 3Rank: 3
来 自:河南安阳
等 级:论坛游侠
威 望:9
帖 子:340
专家分:147
注 册:2005-5-23
结帖率:89.29%
收藏
已结贴  问题点数:20 回复次数:4 
请帮忙解决怎么将1至2位的阿拉伯数字转换成中文数字
如“1”至“9”转换成“一”至“九”;“11”至“99”转换成“十一”......“九十九”。最好能自定义个函数,谢谢!

[此贴子已经被作者于2017-3-25 23:20编辑过]

搜索更多相关主题的帖子: 中文数字 阿拉伯 最好 
2017-03-25 21:42
shenkj001
Rank: 3Rank: 3
来 自:河南安阳
等 级:论坛游侠
威 望:9
帖 子:340
专家分:147
注 册:2005-5-23
收藏
得分:0 
LOCAL gclca,gclcb,gclcc,gclcd,gclce,gclcf,gclcg,gclch,gclci,gclcaa,gclcbb,gclccc,gclcdd,gclcee,gclcff,gclcgg,gclchh,gclcii,gclcjg
FUNC gclccszzh
PARAMETERS gclcfz
IF LEN(ALLTRIM(gclcfz))=1
n=ALLTRIM(gclcfz)
gclca='一'
gclcb='二'
gclcc='三'
gclcd='四'
gclce='五'
gclcf='六'
gclcg='七'
gclch='八'
gclci='九'
IF n='0'
s=''
ENDIF
IF n='1'
s=gclca
ENDIF
IF n='2'
s=gclcb
ENDIF
IF n='3'
s=gclcc
ENDIF
IF n='4'
s=gclcd
ENDIF
IF n='5'
s=gclce
ENDIF
IF n='6'
s=gclcf
ENDIF
IF n='7'
s=gclcg
ENDIF
IF n='8'
s=gclch
ENDIF
IF n='9'
s=gclci
ENDIF
gclcjg=ALLTRIM(s)

ELSE
IF LEN(ALLTRIM(gclcfz))=2
n=SUBSTR(gclcfz,1,1)
i=SUBSTR(gclcfz,2,1)
ENDIF
gclca='一'
gclcb='二'
gclcc='三'
gclcd='四'
gclce='五'
gclcf='六'
gclcg='七'
gclch='八'
gclci='九'
gclcaa='一'
gclcbb='二'
gclccc='三'
gclcdd='四'
gclcee='五'
gclcff='六'
gclcgg='七'
gclchh='八'
gclcii='九'
IF n='1'
s=gclca
ENDIF
IF n='2'
s=gclcb
ENDIF
IF n='3'
s=gclcc
ENDIF
IF n='4'
s=gclcd
ENDIF
IF n='5'
s=gclce
ENDIF
IF n='6'
s=gclcf
ENDIF
IF n='7'
s=gclcg
ENDIF
IF n='8'
s=gclch
ENDIF
IF n='9'
s=gclci
ENDIF
IF i='0'
t=''
ENDIF
IF i='1'
t=gclcaa
ENDIF
IF i='2'
t=gclcbb
ENDIF
IF i='3'
t=gclccc
ENDIF
IF i='4'
t=gclcdd
ENDIF
IF i='5'
t=gclcee
ENDIF
IF i='6'
t=gclcff
ENDIF
IF i='7'
t=gclcgg
ENDIF
IF i='8'
t=gclchh
ENDIF
IF i='9'
t=gclcii
ENDIF
IF SUBSTR(gclcfz,1,1) ='1'
gclcjg=ALLTRIM('十'+t)
ELSE
gclcjg=ALLTRIM(allt(s)+'十'+ALLTRIM(t))
ENDIF
ENDIF
RETURN gclcjg

[此贴子已经被作者于2017-3-26 00:35编辑过]


shenkj001@
2017-03-25 23:45
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:451
帖 子:10541
专家分:42927
注 册:2014-5-20
收藏
得分:20 
1--99的话,凑合一下:
图片附件: 游客没有浏览图片的权限,请 登录注册

FOR i=1 TO 99
    ?? fun(i)+" "
    IF i%10==0
        ?
    ENDIF
ENDFOR


FUNCTION fun(num)
    IF num < 1
        RETURN ""
    ENDIF
    LOCAL a[1], c1, c2
    ALINES(a, "一,二,三,四,五,六,七,八,九", ",")
    c1 = num%10
    c2 = INT(num/10%10)
    RETURN IIF(c2>0, IIF(c2>1,a[c2],"") + "十", "")+ IIF(c1>0, a[c1], "")
ENDFUNC
2017-03-26 00:36
shenkj001
Rank: 3Rank: 3
来 自:河南安阳
等 级:论坛游侠
威 望:9
帖 子:340
专家分:147
注 册:2005-5-23
收藏
得分:0 
谢谢吹水佬!可以达到目的,比我写的简化多了。

shenkj001@
2017-03-26 00:47
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9803
专家分:26906
注 册:2012-2-5
收藏
得分:0 
VFP9 代码
程序代码:
Clear 
lcStr="一二三四五六七八九"
FOR I=1 TO 99
    ?ICASE(BETWEEN(i,1,9),SUBSTR(lcStr,(i-1)*2+1,2),BETWEEN(i,10,19),"十"+SUBSTR(lcStr,(i%10-1)*2+1,2),SUBSTR(lcStr,(INT(i/10)-1)*2+1,2)+"十"+SUBSTR(lcStr,(i%10-1)*2+1,2))
ENDFOR


坚守VFP最后的阵地
2017-11-23 21:00
快速回复:请帮忙解决怎么将1至2位的阿拉伯数字转换成中文数字
数据加载中...
 
   



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

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