货币大写转换函数的更新!

大写|函数|货币|转换

Function AtoC(a As Currency) As String
    '说明:本函数适合于万亿以下的货币转换,允许A的值是最多两位小数
    '定义两个字符串,此处汉字与数字均按一位计算
    Dim String1 As String   '如下定义
    Dim String2 As String   '如下定义
    Dim String3 As String   '从原A值中取出的值
    Dim I As Integer        '循环变量
    Dim J As Integer        'A的值乘以100的字符串长度
    Dim Ch1 As String       '数字的汉语读法
    Dim Ch2 As String       '数字位的汉字读法
    Dim nZero As Integer    '用来计算连续的非零数是几个
    
    String1 = "零壹贰叁肆伍陆柒捌玖"
    String2 = "万仟佰拾亿仟佰拾万仟佰拾元角分"
    'MsgBox CStr(a * 100)
    If InStr(1, CStr(a * 100), ".") <> 0 Then
        err.Raise 5000, , "此函数( AtoC() )只能转换小数点后有两位以内的数!"
    End If
    
    J = Len(CStr(a * 100))
    String2 = Right(String2, J)         '取出对应位数的STRING2的值
    
    For I = 1 To J
        String3 = Mid(a * 100, I, 1)    '取出需转换的某一位的值
        If String3 <> "0" Then
            Ch1 = Mid(String1, Val(String3) + 1, 1)
            Ch2 = Mid(String2, I, 1)
            nZero = nZero + 1           '表示本位不为零
        Else
            
            If nZero <> 0 Or I = J - 9 Or I = J - 5 Or I = J - 1 Then
                If Right(AtoC, 1) = "零" Then AtoC = Left(AtoC, Len(AtoC) - 1)
                Ch1 = "零"
            Else
                Ch1 = ""
            End If
                        
            '如果转换的数值需要扩大,那么需改动以下表达式 I 的值。
            If I = J - 10 Then
                Ch2 = "亿"
            ElseIf I = J - 6 Then
                If nZero <> 0 Then
                    Ch2 = "万"
'                    nZero = 0
                End If
            ElseIf I = J - 2 Then
                Ch2 = "元"
             ElseIf I = J Then
                Ch2 = "整"
            Else
                Ch2 = ""
            End If

时间: 2024-08-31 20:56:18

货币大写转换函数的更新!的相关文章

货币大写转换函数的更新

大写|函数|货币|转换 <%dim a '要转换成大写的金额dim atoc '转换之后的值Dim String1 '如下定义Dim String2 '如下定义Dim String3 '从原A值中取出的值Dim I '循环变量Dim J 'A的值乘以100的字符串长度Dim Ch1 '数字的汉语读法Dim Ch2 '数字位的汉字读法Dim nZero '用来计算连续的零值是几个 String1 = "零壹贰叁肆伍陆柒捌玖"String2 = "万仟佰拾亿仟佰拾万仟佰拾元

精华区中的“货币大写转换函数的更新!”是有问题的

大写|函数|货币|精华|问题|转换 不信你拿1000000让它试试,出来的是壹百元整还有,拿10000000来试的话,出来的是壹仟元整

精华区中的“货币大写转换函数”用起来不是很方便,修改如下:

大写|函数|货币|精华|转换 <%Function ChangeNumToDx(SourceNum)    Dim String1    '如下定义    Dim String2    '如下定义    Dim String3    '从原SourceNum值中取出的值    Dim I         '循环变量    Dim J         'SourceNum的值乘以100的字符串长度    Dim Ch1        '数字的汉语读法    Dim Ch2        '数字位的

(C#)数值型货币的大写转换

大写|货币|转换 本人现在做的项目要求对数值型货币,转换成大写,在网上搜索了半天,没有找到C#写的类型,不得不自己写了,测试了,还能满足要求,只是算法有点繁琐,有哪位大虾再给改改! 下面就是我得代码:using System;using System.Drawing;using System.Collections;using System.ComponentModel;using System.Windows.Forms;using System.Data; namespace WinMark

ORACLE常用数值函数、转换函数、字符串函数介绍

oracle|函数|转换|字符串 ORACLE常用数值函数.转换函数.字符串函数介绍. 数值函数: abs(m) m的绝对值 mod(m,n) m被n除后的余数 power(m,n) m的n次方 round(m[,n]) m四舍五入至小数点后n位的值(n缺省为0)trunc(m[,n]) m截断n位小数位的值(n缺省为0) -------------------------------------------------------------------------------- 字符函数:

C#2.0纯数学方法递归实现货币数字转换中文

递归|货币|中文|转换 最近由于项目的原因,需要写一个货币数字转换中文的算法,先在网了找了一下,结果发现无一列外都是用(Replace)替换的方式来实现的,所以想写个另外的算法:因为本人是学数学出身的,所以用纯数学的方法实现. 注意:本文中的算法支持小于1023 (也就是9999亿兆)货币数字转化. 货币中文说明: 在说明代码之前,首先让我们回顾一下货币的读法. 10020002.23  读为 壹仟零贰万零贰元贰角叁分 1020         读为 壹仟零贰拾元整. 100000      

php的数组与字符串的转换函数整理汇总

以下是对php中的数组与字符串的转换函数进行了详细的整理汇总,需要的朋友可以参考下   1.将一个字符串转化为数组str_split()用于将一个字符串转化为数组语法: 复制代码 代码如下: str_split(string,length) <SPAN style="COLOR: #333333"><SPAN style="FONT-SIZE: 12px"><SPAN style="FONT-FAMILY: 宋体"&

Excel表格数字大小写转换函数

  数字大小写转换函数: 实际相当于函数=NUMBERSTRING(1234567890,3),参数为3时,输出结果直接为独立数字大写. 实际相当于函数=NUMBERSTRING(1234567890,2),参数为2时,输出结果直接为金额大写. 实际相当于函数=NUMBERSTRING(1234567890,1),参数为1时,输出结果直接为整个数字的大写. value值用的是引用表格,和直接输入数字是一样.

PHP人民币金额数字转中文大写的函数代码_php技巧

在网上看到一个非常有趣的PHP人民币金额数字转中文大写的函数,其实质就是数字转换成中文大写,测试了一下,非常有趣,随便输个数字,就可以将其大写打印出来,新手朋友们试一下吧,举一反三,还可以写好多有趣的PHP转换函数. 复制代码 代码如下: <?  function cny($ns) {     static $cnums=array("零","壹","贰","叁","肆","伍",