欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

数字转换为英文大写

发布时间:2024/4/17 编程问答 43 豆豆
生活随笔 收集整理的这篇文章主要介绍了 数字转换为英文大写 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

之前一个网友工作中需要把数字转换为英文大写,于是就给他写了一个。函数有两个参数,数字和单位。第二个参数为计量单位,可以是货币也可以是重量。 代码如下:

1 Function Num2Str(FullNum As Variant, NumUnit As Integer) 2 Dim NumLen As Integer 3 Dim i As Integer 4 Dim ArrUnit 5 Dim SubUnit 6 Dim Factor 7 Dim Num As Variant 8 Dim Dec As String 9 10 ArrUnit = Array("Dollar", "Euro", "KG", "KPC") 11 SubUnit = Array("Cent", "Cent", "G", "PC") 12 Factor = Array(100, 100, 1000, 1000) 13 14 Num = Int(FullNum) 15 Dec = Right(Application.Round(((FullNum - Num) * Factor(NumUnit)), 0) + 1000, 3) 16 17 NumLen = Application.RoundUp(Len(Num) / 3, 0) 18 Num2Str = "" 19 20 For i = NumLen To 1 Step -1 21 Num2Str = Num2Str & NumPart(Mid(10 ^ (3 * NumLen) + Num, 2 + 3 * NumLen - 3 * i, 3), i) 22 Next i 23 24 Num2Str = Num2Str & " " & ArrUnit(NumUnit) 25 If Num > 1 Then Num2Str = Num2Str & "s" 26 If Dec <> "000" Then 27 Num2Str = Num2Str & NumPart(Dec, 1) ' 28 Num2Str = Num2Str & " " & SubUnit(NumUnit) 29 If Dec <> "001" Then Num2Str = Num2Str & "s" 30 End If 31 Num2Str = Num2Str & "." 32 33 End Function 34 35 Function NumPart(Num As String, Part As Integer) 36 Dim ArrNum 37 Dim ArrTen 38 Dim ArrTeen 39 Dim iDigit As Integer 40 41 ArrNum = Array("One", "Two", "Three", "Four", "Five", "Six", "Seven", "Eight", "Nine") 42 ArrTen = Array("Twenty", "Thirty", "Forty", "Fifty", "Sixty", "Seventy", "Eighty", "Ninty") 43 ArrTeen = Array("Ten", "Eleven", "Twelve", "Thirteen", "Fourteen", "Fifteen", "Sixteen", "Seventeen", "Eighteen", "Nineteen") 44 45 iDigit = Left(Num, 1) 46 If iDigit <> 0 Then NumPart = " " & ArrNum(iDigit - 1) & " Hundred" 47 48 iDigit = Mid(Num, 2, 1) 49 If iDigit = 1 Then 50 iDigit = Right(Num, 1) 51 NumPart = NumPart & " " & ArrTeen(iDigit) & " " 52 GoTo Unit 53 Else 54 If iDigit <> 0 Then NumPart = NumPart & " " & ArrTen(iDigit - 2) 55 End If 56 57 iDigit = Right(Num, 1) 58 If iDigit <> 0 Then NumPart = NumPart & " " & ArrNum(iDigit - 1) 59 60 Unit: 61 If Part = 3 Then NumPart = NumPart & " Million " 62 If Part = 2 Then NumPart = NumPart & " Thousand " 63 64 End Function

 

转载于:https://www.cnblogs.com/wisever/p/9385580.html

与50位技术专家面对面20年技术见证,附赠技术全景图

总结

以上是生活随笔为你收集整理的数字转换为英文大写的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。