荔园在线

荔园之美,在春之萌芽,在夏之绽放,在秋之收获,在冬之沉淀

[回到开始] [上一篇][下一篇]


发信人: Junhot (倚浩), 信区: Visual
标  题: 将阿拉伯数字转为中文大写的一段程序。
发信站: 荔园晨风BBS站 (Sun Sep 16 19:39:14 2001), 转信


这是我从Mud的程序中修改而来的,当然这段代码不完美,只是给大家提供灵感而已。

有些地方太长了,我换成了连接符。


Dim c_digit() As String = {"零","拾","佰","仟","万","亿","兆"}
Dim c_num() As String = {"零","壹","贰","叁","肆","伍","陆","柒" _
,"捌","玖","拾"}

Function Chinese_Number(i As Integer) As String
        If (i < 0) Then Return "负" + chinese_number(-i)
        If (i < 10) Then Return c_num(i)
        If (i = 10) Then Return "壹" + c_digit(1)
        If (i < 20) Then Return "壹" + c_digit(1) + c_num(i - 10)
        If (i < 100) Then
            If (i Mod 10 <> 0) Then
                Return c_num(i / 10) + c_digit(1) + c_num(i Mod 10)
            Else
                Return c_num(i / 10) + c_digit(1)
            End If
        End If
        If (i < 1000) Then
            If (i Mod 100 = 0) Then
                return c_num(i / 100) + c_digit(2)
            ElseIf (i Mod 100 < 10) Then
                return c_num(i / 100) + c_digit(2) + c_num(0) + _
                chinese_number(i Mod 100)
            Else
                return c_num(i / 100) + c_digit(2) + _
                chinese_number(i Mod 100)
            End If
        End If
        If (i < 10000) Then
            If (i Mod 1000 = 0) Then
                return c_num(i / 1000) + c_digit(3)
            ElseIf (i Mod 1000 < 100) Then
                return c_num(i / 1000) + c_digit(3) + c_num(0) + _
                chinese_number(i Mod 1000)
            Else
                return c_num(i / 1000) + c_digit(3) + _
                chinese_number(i Mod 1000)
            End If
        End If
        If (i < 100000000) Then
            If (i Mod 10000 = 0) Then
                return chinese_number(i / 10000) + c_digit(4)
            ElseIf (i Mod 10000 < 1000) Then
                return chinese_number(i / 10000) + c_digit(4) + _
                c_num(0) + chinese_number(i Mod 10000)
            Else
                return chinese_number(i / 10000) + c_digit(4) + _
                chinese_number(i Mod 10000)
            End If
        End If
        If (i < 1000000000000) Then
            If (i Mod 100000000 = 0) Then
                return chinese_number(i / 100000000) + c_digit(5)
            ElseIf (i Mod 100000000 < 1000000) Then
                return chinese_number(i / 100000000) + c_digit(5) + _
                c_num(0) + chinese_number(i Mod 100000000)
            Else
                return chinese_number(i / 100000000) + c_digit(5) + _
                chinese_number(i Mod 100000000)
            End If
        End If
        If (i Mod 1000000000000 = 0) Then
            return chinese_number(i / 1000000000000) + c_digit(6)
        ElseIf (i Mod 1000000000000 < 100000000) Then
            return chinese_number(i / 1000000000000) + c_digit(6) + _
            c_num(0) + chinese_number(i Mod 1000000000000)
        Else
            return chinese_number(i / 1000000000000) + c_digit(6) + _
            chinese_number(i Mod 1000000000000)
        End If
End Function
--
                         战意渐去,红尘琐事不关己,归隐故里。
Welcome to ULike:http://192.168.28.1
欢迎光临友来ULike--By LemonTea Studio

※ 修改:·Junhot 於 Sep 16 19:40:07 修改本文·[FROM: 192.168.28.222]
※ 来源:·荔园晨风BBS站 bbs.szu.edu.cn·[FROM: 192.168.28.222]


[回到开始] [上一篇][下一篇]

荔园在线首页 友情链接:深圳大学 深大招生 荔园晨风BBS S-Term软件 网络书店