# 货币数字转化为大写格式

```Dim CHAp(21, 1)

CHAp(0, 0) = "万": CHAp(0, 1) = 10000
CHAp(1, 0) = "仟": CHAp(1, 1) = 1000
CHAp(2, 0) = "佰": CHAp(2, 1) = 100
CHAp(3, 0) = "拾": CHAp(3, 1) = 10
CHAp(4, 0) = "元": CHAp(4, 1) = 1
CHAp(5, 0) = "角": CHAp(5, 1) = 0.1
CHAp(6, 0) = "分": CHAp(6, 1) = 0.01
CHAp(11, 0) = "壹": CHAp(11, 1) = 1
CHAp(12, 0) = "贰": CHAp(12, 1) = 2
CHAp(13, 0) = "叁": CHAp(13, 1) = 3
CHAp(14, 0) = "肆": CHAp(14, 1) = 4
CHAp(15, 0) = "伍": CHAp(15, 1) = 5
CHAp(16, 0) = "陆": CHAp(16, 1) = 6
CHAp(17, 0) = "柒": CHAp(17, 1) = 7
CHAp(18, 0) = "捌": CHAp(18, 1) = 8
CHAp(19, 0) = "玖": CHAp(19, 1) = 9
CHAp(20, 0) = "零": CHAp(20, 1) = 0
CHAp(21, 0) = "亿": CHAp(21, 1) = 100000000

Function SubtoChinese(price As Integer)
'转化千百十
Dim i As Integer
Dim num(15) As Integer
i = 1
Do Until price = 0
num(i) = Int(price / CHAp(i, 1))
If num(i) <> 0 Then
SubtoChinese = SubtoChinese & CHAp(num(i) + 10, 0) & CHAp(i, 0)
price = price - num(i) * CHAp(i, 1)
Else
If SubtoChinese <> "" And Right(SubtoChinese, 1) <> "零" Then
SubtoChinese = SubtoChinese & "零"
End If
End If
i = i + 1
Loop
If Right(SubtoChinese, 1) = "元" Then
SubtoChinese = Left(SubtoChinese, Len(SubtoChinese) - 1)
End If
End Function

Function PricetoChinese(price As Double)
If price >= 100000000 Then   '大于1亿
PricetoChinese = PricetoChinese & PricetoChinese(Int(price / 100000000)) & "亿"
price = price - Int(price / 100000000) * 100000000
End If
If price >= 10000 Then
PricetoChinese = PricetoChinese & SubtoChinese(Int(price / 10000)) & "万"
price = price - Int(price / 10000) * 10000
End If
If Int(price) <> 0 Then '如果万与千间无数，则应添零
If PricetoChinese <> "" And Int(price) < 1000 Then
PricetoChinese = PricetoChinese & "零"
End If
PricetoChinese = PricetoChinese & SubtoChinese(Int(price))
price = price - Int(price)
End If
If PricetoChinese <> "" Then PricetoChinese = PricetoChinese & "元"
If price = 0 Then '到元为止
PricetoChinese = PricetoChinese & "整"
Else
price = Int(price * 100)
If Int(price / 10) <> 0 Then
PricetoChinese = PricetoChinese & CHAp(Int(price / 10) + 10, 0) & "角"
price = price - Int(price / 10) * 10
End If
If price <> 0 Then
PricetoChinese = PricetoChinese & CHAp(Int(price) + 10, 0) & "分"

End If
End If
End Function

//该片段来自于http://outofmemory.cn
```

0人收藏

0

0

1. ImportNew读者投稿 发表 2013-03-14 09:48:51 Java到底是传引用还是传值?
2. C7210 发表 2013-05-18 09:14:48 UX基础 - OmniGraffle新手指南
3. c7210 发表 2013-06-25 13:57:11 iOS7界面设计规范(9) - UI基础 - 动画
4. 博主 发表 2013-08-26 02:35:24 JAVA操作Hbase基础例子
5. 石元 发表 2014-03-12 10:54:19 补间动画基础
6. Terry Zhang 发表 2014-04-27 08:18:40 [集合框架] Java 集合框架简介
7. 周森标 发表 2013-11-04 09:51:28 游戏动态画面开发基础
8. 博主 发表 2013-06-25 07:00:00 《Java Web开发实战1200例》实用案例之第二章Java语言基础
9. ajaxj 发表 2014-08-18 02:09:05 android webview 使用以及一些常见的异常处理
10. caishzh 发表 2013-10-22 02:16:12 Linux增加swap空间
11. 博主 发表 2013-08-27 00:00:00 js基础组件设计123
12. 浅墨 发表 2014-02-10 14:49:18 cJSON库源码分析