Foxtable(狐表)用户栏目专家坐堂 → 帮忙写一个大写金额转换成小写金额的函数


  共有83人关注过本帖树形打印复制链接

主题:帮忙写一个大写金额转换成小写金额的函数

帅哥哟,离线,有人找我吗?
keli0917
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:300 积分:2837 威望:0 精华:0 注册:2018/5/21 16:49:00
帮忙写一个大写金额转换成小写金额的函数  发帖心情 Post By:2025/1/28 22:21:00 [只看该作者]

帮助里只有小写转换成大写的函数CUMoney,想要一个大写转换成小写金额的


 回到顶部
帅哥哟,离线,有人找我吗?
keli0917
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:300 积分:2837 威望:0 精华:0 注册:2018/5/21 16:49:00
  发帖心情 Post By:2025/1/29 19:20:00 [只看该作者]

Dim ChineseAmount As String =args(0)
Dim numMap() As String = {"零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖"} '数字映射表
Dim unitMap() As String = {"分", "角", "元", "拾", "佰", "仟", "万", "亿"} '单位映射表
Dim unitValueMap() As Double = {0.01, 0.1, 1, 10, 100, 1000, 10000, 100000000} '单位值映射表 
Dim sectionResult As Double
Dim result As Double

Dim currentNum As Double = 0
Dim currentUnit As Double = 0
Dim lenStr As Integer
ChineseAmount = ChineseAmount.Replace("圆","元")
lenStr = ChineseAmount.length
sectionResult = 0
result = 0

For i As Integer = 1 To lenStr
    Dim currentChar As String
    currentChar = ChineseAmount.Chars(i-1)
    
    ' 处理"整"字
    If currentChar = "整" Then
        Exit For
    End If
    
    ' 检查是否为数字 
    Dim isNumber As Boolean = False 
    For numIndex As Integer  = 0 To numMap.length -1
        If currentChar = numMap(numIndex) Then
            isNumber = True 
            currentNum = numIndex
            Exit For
        End If
    Next
   ' Output.Show("i:="&i)
   ' Output.Show("当前字符"&currentChar)
   ' Output.Show("currentNum "&currentNum)
   ' Output.Show("numIndex"& numIndex)

    If isNumber  Then '如果是数字 
        ' 是数字,继续处理下一个字符
        Continue For
    End If
    
    ' 检查是否为单位
    Dim unitIndex As Integer
    unitIndex = -1
    For unitIndex  = 0 To unitMap.length -1
        If currentChar = unitMap(unitIndex) Then
            currentUnit = unitValueMap(unitIndex)
            If unitIndex = 6 Or unitIndex = 7 Then ' 万或亿
                sectionResult = (sectionResult + currentNum) * currentUnit
                result = result + sectionResult
                sectionResult = 0
            Else 
                sectionResult = sectionResult + currentNum * currentUnit                
            End If
            currentNum = 0
            Exit For
        End If
    Next
Next

result = result + sectionResult

Return result
[此贴子已经被作者于2025/1/29 22:20:57编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
keli0917
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:300 积分:2837 威望:0 精华:0 注册:2018/5/21 16:49:00
  发帖心情 Post By:2025/1/29 19:21:00 [只看该作者]

已成
[此贴子已经被作者于2025/1/29 22:20:31编辑过]

 回到顶部