.net rdlc 自定义函数"把数字转换为大写中文"

在.net平台的rdlc中,可以使用自定义方法来扩充报表功能,比如常见的 ”把数字转换为大写中文

网上找了很久发现这篇不错 原文

后来细心测试发现存在一个bug,原文也有人评论有bug,可是原作者一直没更正代码

研究了一下代码,自行修改如下:直接上代码(用 vb 写的,红色部分为修改代码

Function CNMoney(money As Double) As String
Dim str_Money = money.ToString()
Dim str_China As [String]() = {"分","角","元","拾","佰","仟",_
"万","亿",_
"佰","兆","仟"}
Dim str_Number As [String]() = {"零","壹","贰","叁","肆","伍",_
"陆","柒","捌","玖"}
Dim M As [String] = ""
Dim mark As Integer
''不正常数据
If InStr(Right(str_Money,2),".") > 0 Then
mark = 0
Else
mark = 1
End If

Dim isPoint As Boolean = False
If str_Money.IndexOf(".") <> -1 Then
str_Money = str_Money.Remove(str_Money.IndexOf("."),1)
isPoint = True
End If
For i As Integer = str_Money.Length To 1 Step -1
Dim MyData As Integer = Convert.ToInt16(str_Money(str_Money.Length - i).ToString())
M += str_Number(MyData)
If isPoint = True Then
M += str_China(i - mark) Else M += str_China(i + 1) End If Next Return M End Function

相关文章

Format[$] ( expr [ , fmt ] ) format 返回变体型 format$ 强...
VB6或者ASP 格式化时间为 MM/dd/yyyy 格式,竟然没有好的办...
在项目中添加如下代码:新建窗口来显示异常信息。 Namespace...
转了这一篇文章,原来一直想用C#做k3的插件开发,vb没有C#用...
Sub 分列() ‘以空格为分隔符,连续空格只算1个。对所选...
  窗体代码 1 Private Sub Text1_OLEDragDrop(Data As Dat...