钱小写转大写 VB
2016-01-19 20:29
573 查看
Function DaXie(ByVal Num As String) As String '
If IsNumeric(Num) = False Then
DaXie = ""
Exit Function
End If
Dim Place As String = "分角元拾佰仟万拾佰仟亿拾佰仟万"
Dim Dn As String = "壹贰叁肆伍陆柒捌玖"
Dim D1 As String = "整零元零零零万零零零亿零零零万"
Dim FuHao As String
If Num < 0 Then FuHao = "(负)"
Num = Format(Math.Abs(CDbl(Num)), "0.00") * 100 'Replace(CStr(Format(CDbl(Num), "0.00")), ".", "")
If Num > 999999999999999.0 Then
DaXie = ""
Exit Function
End If
If Num = 0 Then
DaXie = "零元零分"
Exit Function
End If
Dim NumA As String
NumA = Trim(Num)
Dim NumLen As Integer = Len(NumA)
Dim j As Integer
Dim NumC As String
For j = NumLen To 1 Step -1 ' 数字转换过程
Dim temp As Double = Val(Mid(NumA, NumLen - j + 1, 1))
If temp <> 0 Then ' 非零数字转换
NumC = NumC & Mid(Dn, temp, 1) & Mid(Place, j, 1)
Else ' 数字零的转换
If Right(NumC, 1) <> "零" Then
NumC = NumC & Mid(D1, j, 1)
Else
Select Case j ' 特殊数位转换
Case 1
NumC = Left(NumC, Len(NumC) - 1) & Mid(D1, j, 1)
Case 3, 11
NumC = Left(NumC, Len(NumC) - 1) & Mid(D1, j, 1) & "零"
Case 7
If Mid(NumC, Len(NumC) - 1, 1) <> "亿" Then
NumC = Left(NumC, Len(NumC) - 1) & Mid(D1, j, 1) & "零"
End If
Case Else
End Select
End If
End If
Next
DaXie = FuHao & Trim(NumC)
End Function
If IsNumeric(Num) = False Then
DaXie = ""
Exit Function
End If
Dim Place As String = "分角元拾佰仟万拾佰仟亿拾佰仟万"
Dim Dn As String = "壹贰叁肆伍陆柒捌玖"
Dim D1 As String = "整零元零零零万零零零亿零零零万"
Dim FuHao As String
If Num < 0 Then FuHao = "(负)"
Num = Format(Math.Abs(CDbl(Num)), "0.00") * 100 'Replace(CStr(Format(CDbl(Num), "0.00")), ".", "")
If Num > 999999999999999.0 Then
DaXie = ""
Exit Function
End If
If Num = 0 Then
DaXie = "零元零分"
Exit Function
End If
Dim NumA As String
NumA = Trim(Num)
Dim NumLen As Integer = Len(NumA)
Dim j As Integer
Dim NumC As String
For j = NumLen To 1 Step -1 ' 数字转换过程
Dim temp As Double = Val(Mid(NumA, NumLen - j + 1, 1))
If temp <> 0 Then ' 非零数字转换
NumC = NumC & Mid(Dn, temp, 1) & Mid(Place, j, 1)
Else ' 数字零的转换
If Right(NumC, 1) <> "零" Then
NumC = NumC & Mid(D1, j, 1)
Else
Select Case j ' 特殊数位转换
Case 1
NumC = Left(NumC, Len(NumC) - 1) & Mid(D1, j, 1)
Case 3, 11
NumC = Left(NumC, Len(NumC) - 1) & Mid(D1, j, 1) & "零"
Case 7
If Mid(NumC, Len(NumC) - 1, 1) <> "亿" Then
NumC = Left(NumC, Len(NumC) - 1) & Mid(D1, j, 1) & "零"
End If
Case Else
End Select
End If
End If
Next
DaXie = FuHao & Trim(NumC)
End Function
相关文章推荐
- VB.NET关于Socket分包发送的源码
- VB.NET关于Socket分包发送的原理分析
- VB学习要点4----日期型数据作算术运算
- VB学习要点3----本窗体下Format函数下的操作(包括本窗体下的字体,颜色,大小的更改)
- C# vba 操作 Word
- VS编程中找不到Microsoft.Office.Core、Microsoft.Office.Interop.Word和VBIDE
- How to Login Automatically into Website Using Excel VBA
- 【VBA研究】如何防止用户关闭窗体
- 提高VBA程序效率的技巧
- VBA 通过timer计时
- VB.NET中lambda的写法
- vb.net——通过邮箱动态发送验证码实现完美注册
- VB.net操控網頁整理加實戰篇
- VB6 codesmart 出现问题解决
- vb.net 读写ini文件
- VB学习要点2----VB常用函数小节
- MaskedTextBox中对IP信息输入的处理
- 在Win8.1 X64下安装VB6及后续补丁的正确方法
- VBA组合框
- 【VB+数控原理与系统】数控原理与系统课程设计刀具半径补偿直线-直线VB模拟软件实现