CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
(图)邪恶的韩国UMPC 使用 Java 编写数据库应用新规范
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VB >  基础类

求金額的小寫轉大寫程序!!謝謝

楼主dgl058098()2006-12-01 08:49:55 在 VB / 基础类 提问

如題 问题点数:20、回复次数:4Top

1 楼zq972(最近不想写代码,好累~~~~)回复于 2006-12-01 08:55:22 得分 10

'**************************************************************************  
  '函数用途:将数字串转换为中文金额字符串  
  '入口参数:Digital   要转换的数字串  
  '返回参数:中文金额字符串  
  '限制:Digital小于1亿  
  '*************************************************************************  
  Public   Function   ConvToMoney(ByVal   Digital   As   String)   As   String  
  Dim   strChi(11),   strDig(10)     As   String  
  Dim   stmp,   rsStr   As   String  
  Dim   lenStr   As   Byte  
  Dim   laststr   As   String  
   
   
   
  If   Not   IsNumeric(Digital)   Then  
          ConvToMoney   =   ""  
          Exit   Function  
  End   If  
   
  If   Val(Format(Digital))   <   0   Then  
          Digital   =   Trim(Str(Abs(Val(Format(Digital)))))  
          laststr   =   "整(负)"  
  Else  
          laststr   =   "整"  
  End   If  
   
  strChi(0)   =   "分"  
  strChi(1)   =   "角"  
  strChi(2)   =   "元"  
  strChi(3)   =   "拾"  
  strChi(4)   =   "佰"  
  strChi(5)   =   "仟"  
  strChi(6)   =   "万"  
  strChi(7)   =   "拾"  
  strChi(8)   =   "佰"  
  strChi(9)   =   "仟"  
  strChi(10)   =   "亿"  
  strDig(0)   =   "零"  
  strDig(1)   =   "壹"  
  strDig(2)   =   "贰"  
  strDig(3)   =   "叁"  
  strDig(4)   =   "肆"  
  strDig(5)   =   "伍"  
  strDig(6)   =   "陆"  
  strDig(7)   =   "柒"  
  strDig(8)   =   "捌"  
  strDig(9)   =   "玖"  
  stmp   =   Digital  
  If   (Len(stmp)   =   0)   Or   (Len(stmp)   >   11)   Then  
    ConvToMoney   =   ""  
    Exit   Function  
  End   If  
  stmp   =   Format(stmp,   "########.00")  
  If   Len(stmp)   >   11   Then  
    ConvToMoney   =   ""  
    Exit   Function  
  End   If  
   
  lenStr   =   Len(stmp)  
   
   
    rsStr   =   strDig(Val(Mid(stmp,   lenStr   -   1,   1)))   &   strChi(1)   &   strDig(Val(Right(stmp,   1)))   &   strChi(0)  
    stmp   =   Left(stmp,   Len(stmp)   -   3)  
  Dim   I,   d   As   Byte  
  Dim   blnZero   As   Boolean  
  Dim   stmprv,   dstr   As   String  
   
  For   I   =   1   To   Len(stmp)  
      stmprv   =   Mid(stmp,   I,   1)   &   stmprv  
  Next  
   
  For   I   =   1   To   Len(stmprv)  
    d   =   Val(Mid(stmprv,   I,   1))  
    If   d   =   0   Then  
        If   I   =   1   Or   I   =   5   Then  
              dstr   =   strChi(I   +   1)  
        Else  
            If   Not   blnZero   Then  
              dstr   =   strDig(0)  
            Else  
              dstr   =   ""  
            End   If  
        End   If  
        blnZero   =   True  
    Else  
        dstr   =   strDig(d)   &   strChi(I   +   1)  
        blnZero   =   False  
    End   If  
    rsStr   =   dstr   +   rsStr  
  Next  
  ConvToMoney   =   rsStr   &   laststr  
  End   Function  
  Top

2 楼meilidexue()回复于 2006-12-01 11:10:44 得分 10

楼上正解!!!Top

3 楼xchd545(男才女貌?男财女貌?男财女毛?!)回复于 2006-12-01 11:17:02 得分 0

晚了,蹭分?Top

4 楼dgl058098()回复于 2006-12-01 14:04:56 得分 0

5555555555555555555.我自己也找到答案了Top

相关问题

关键词

得分解答快速导航

  • 帖主:dgl058098
  • zq972
  • meilidexue

相关链接

  • Visual Basic类图书
  • Visual Basic类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
惹火投票。。火热进行中...
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo