VB编程问题

[复制链接]
查看11 | 回复1 | 2010-2-19 00:00:21 | 显示全部楼层 |阅读模式
dim a(1 to 5) as char'定义一个字符数组变量为金额的各个数字(位数为1-5之间,这个你可以自己调整)dim b,i,j as integer'定义二个整形变量,b用来读取text1中的数据,i用作for循环,j用作把金额转换成一个个小的字符串时b=val(text1.text)'读取元数后面的还没写完哦,明天补充(我还没有做完)做好思想准备,非常长的代码还有我做的是整数的,并且不超过100000.学习学习可以的哦! 补充:饶恕我不太会哦,再给点时间吧!谢!
回复

使用道具 举报

千问 | 2010-2-19 00:00:21 | 显示全部楼层
Function daxie(money As String) As String 'Dim x As String, y As StringConst zimu = ".sbqwsbqysbqwsbq" '定义位置代码Const letter = "0123456789sbqwy.jzf" '定义数字及汉字缩写Const upcase = "零壹贰叁肆伍陆柒捌玖拾佰仟万亿圆角整分" '定义大写汉字Dim temp As Stringtemp = moneyIf InStr(temp, ".") > 0 Then temp = Left(temp, InStr(temp, ".") - 1)If Len(temp) > 16 Then MsgBox "数目太大,无法换算!请输入一亿亿以下的数字", 64, "错误提示": Exit Function '只能转换一亿亿元以下数目的货币!x = Format(money, "0.00") '格式化货币y = ""For i = 1 To Len(x) - 3y = y & Mid(x, i, 1) & Mid(zimu, Len(x) - 2 - i, 1)NextIf Right(x, 3) = ".00" Theny = y & "z"
'***元整Else y = y & Left(Right(x, 2), 1) & "j" & Right(x, 1) & "f"
'*元*角*分 End Ify = Replace(y, "0q", "0") '避免零千(如:40200肆万零千零贰佰)y = Replace(y, "0b", "0") '避免零百(如:41000肆万壹千零佰)y = Replace(y, "0s", "0") '避免零十(如:204贰佰零拾零肆)y = Replace(y, "0j", "0")'避免零角y = Replace(y, "0f", "整")Do While yReplace(y, "00", "0")y = Replace(y, "00", "0") '避免双零(如:1004壹仟零零肆)Loopy = Replace(y, "0y", "y") '避免零亿(如:210亿
贰佰壹十零亿)y = Replace(y, "0w", "w") '避免零万(如:210万
贰佰壹十零万)y = IIf(Len(x) = 5 And Left(y, 1) = "1", Right(y, Len(y) - 1), y) '避免壹十(如:14壹拾肆;10壹拾)y = IIf(Len(x) = 4, Replace(y, "0.", ""), Replace(y, "0.", ".")) '避免零元(如:20.00贰拾零圆;0.12零圆壹角贰分)For i = 1 To 19y = Replace(y, Mid(letter, i, 1), Mid(upcase, i, 1)) '大写汉字Nextdaxie = yEnd FunctionPrivate Sub Command1_Click() Text2.Text = daxie(Val(Text1.Text)) ' (如return: 贰玖仟叁佰贰拾贰圆叁角贰分End Sub
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行