金额转为汉字大写
来源:互联网 发布:苹果软件不受信任 编辑:程序博客网 时间:2024/04/30 01:30
网上找了个例子,修改了下,只要修改strUnitList的长度就可以控制能转的数字范围了
Public Shared Function getMoney(ByVal num As Decimal) As String Dim strNumList As String = "零壹贰叁肆伍陆柒捌玖" '0-9所对应的汉字 Dim strUnitList As String = "仟佰拾万仟佰拾亿仟佰拾万仟佰拾元角分" '数字位所对应的汉字 Dim strSplitPara As String = "" '从原num值中取出的值 Dim strPara As String = "" '数字的字符串形式 Dim strResult As String = "" '人民币大写金额形式 Dim i As Integer '循环变量 Dim intLen As Integer 'num的值乘以100的字符串长度 Dim strNum As String = "" '数字的汉语读法 Dim strUnit As String = "" '数字位的汉字读法 Dim nzero As Integer = 0 '用来计算连续的零值是几个 Dim temp As Integer '从原num值中取出的值 num = Math.Round(Math.Abs(num), 2) '将num取绝对值并四舍五入取2位小数 strPara = CLng((num * 100)).ToString() '将num乘100并转换成字符串形式 intLen = strPara.Length '找出最高位 If intLen > strUnitList.Length Then Return "溢出" End If strUnitList = Right(strUnitList, intLen) '取出对应位数的strUnitList的值。如:200.55,intLen为5所以strUnitList=佰拾元角分 '循环取出每一位需要转换的值 For i = 0 To intLen - 1 strSplitPara = strPara.Substring(i, 1) '取出需转换的某一位的值 temp = Convert.ToInt32(strSplitPara) '转换为数字 If i <> (intLen - 3) AndAlso i <> (intLen - 7) AndAlso i <> (intLen - 11) AndAlso i <> (intLen - 15) Then '当所取位数不为元、万、亿、万亿上的数字时 If strSplitPara = "0" Then strNum = "" strUnit = "" nzero = nzero + 1 Else If strSplitPara <> "0" AndAlso nzero <> 0 Then strNum = "零" & strNumList.Substring(temp * 1, 1) strUnit = strUnitList.Substring(i, 1) nzero = 0 Else strNum = strNumList.Substring(temp * 1, 1) strUnit = strUnitList.Substring(i, 1) nzero = 0 End If End If Else '该位是万亿,亿,万,元位等关键位 If strSplitPara <> "0" AndAlso nzero <> 0 Then strNum = "零" & strNumList.Substring(temp * 1, 1) strUnit = strUnitList.Substring(i, 1) nzero = 0 Else If strSplitPara <> "0" AndAlso nzero = 0 Then strNum = strNumList.Substring(temp * 1, 1) strUnit = strUnitList.Substring(i, 1) nzero = 0 Else If strSplitPara = "0" AndAlso nzero >= 3 Then strNum = "" strUnit = "" nzero = nzero + 1 Else strNum = "" strUnit = strUnitList.Substring(i, 1) nzero = 0 End If End If End If End If If i = (intLen - 11) OrElse i = (intLen - 3) Then '如果该位是亿位或元位,则必须写上 strUnit = strUnitList.Substring(i, 1) End If strResult = strResult + strNum + strUnit If i = intLen - 1 AndAlso strSplitPara = "0" Then '最后一位(分)为0时,加上“整” strResult = strResult + "整" End If Next If num = 0 Then strResult = "零元整" End If Return strResult End Function Public Shared Function getMoney(ByVal numstr As String) As String Try Dim num As Decimal = Convert.ToDecimal(numstr) Return getMoney(num) Catch Return "非数字形式!" End Try End Function
- 金额转为汉字大写
- 数字金额转为大写金额
- 数字金额转为大写金额
- 小写金额转为大写
- 大写汉字金额
- 数字金额转为汉字金额
- 金额转为大写中文方法
- js小写金额转为大写
- 数字金额转为大写金额(C#)
- 数字金额转为大写金额(C#)
- 数字金额转为大写金额(C#)
- 阿拉伯数字金额转为大写金额(c#)
- 数字转汉字大写金额
- 阿拉伯数字金额转汉字大写
- 将金额转成大写汉字
- 数字金额转化为汉字大写金额
- 金额转换,把金额转换成为汉字大写金额!
- 浮点数转为人民币金额大写
- I miss you again
- c#操作word表格,主要是对word中不规则表格的操作
- 计算最大公约数的算法
- WINCE下修改config.bib文件中的FSRAMPERCENT设置值改变内存百分比
- 解决myeclipse不编译的方法
- 金额转为汉字大写
- 如何把Excel表格数据转成XML
- VC开发环境的优化
- SPDIF数字传输接口概念解析【转帖】
- LIVE555 Streaming Media 组播,单播设置流程
- 算法 - 反转一个单链表
- 委托
- RCP程序部署
- Windows环境下的tomcat + apache配置(绝对实践操作版)