绿色风's Blog
专注AutoIT(Au3)
  • 首页
  • 流●年
  • 笔●记
    • 学习随记
    • 源码示例
  • 脚●本
    • UDF(收集)
    • 工作室UDF
    • 工具●教程
    • 教程之GDI
  • 作●品
  • 下●载
  • 情怀ExcelTip
4月162015

阿拉伯数字转换成中文大写数字

作者:绿色风   发布:2015-4-16 13:22 Thursday   分类:   阅读:5267次   评论:0条  

原创作者ACN站:3mile

如:550065转换成“五十五万零六十五”或“伍拾伍万零陆拾伍”
可作为UDF使用的。
NUM2CWORD($number,$vValue="")参数为0则只是大写,参数为1为古体



#include <array.au3>
Dim $numb = InputBox("", "")
$go = NUM2CWORD($numb)
$go1 = NUM2CWORD($numb, 1)
MsgBox(0, 0, "原始数字:" & $numb & @CRLF & "中文大写:" & $go & @CRLF & "中文古写:" & $go1)

Func NUM2CWORD($number, $vValue = "")
        If Not IsNumber(Execute($number)) Then Return SetError(1, 0, "");如果输入的不是数字返回错误代码1
        If $number > 999999999999 Then Return SetError(2, 0, "");如果大于千亿返回错误代码2
        If $vValue < 0 Or $vValue = "" Then $vValue = 0
        If $vValue = 1 Then
                Dim $Cnum[10] = ["零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖"]
                Dim $Cwei[12] = ["", "拾", "佰", "仟", "万", "拾万", "佰万", "仟万", "亿", "拾亿", "佰亿", "仟亿"]
        Else
                Dim $Cnum[10] = ["零", "一", "二", "三", "四", "五", "六", "七", "八", "九"]
                Dim $Cwei[12] = ["", "十", "百", "千", "万", "十万", "百万", "千万", "亿", "十亿", "百亿", "千亿"]
        EndIf
        Local $str, $xiao
        If StringRegExp($number, '\d+\.\d+', 0) Then;判断是否有小数
                $number_temp = StringRegExp($number, '(\d+)\.(\d+)', 3)
                $number = $number_temp[0]
                $number_xiao = $number_temp[1]
                $number_xiao_wei = StringLen($number_xiao)
        Else
                $number_xiao_wei = 0
        EndIf
        $number_wei = StringLen($number)
        If $number_xiao_wei > 0 Then;计算小数部分
                For $x = 1 To $number_xiao_wei
                        $xiao &= $Cnum[StringMid($number_xiao, $x, 1)]
                Next
        EndIf
        $n = $number_wei
        For $i = 1 To $number_wei;计算整数部分
                If StringMid($number, $i, 1) = 0 Then
                        If StringMid($number, $i - 1, 1) = 0 Then
                                $n -= 1
                        Else
                                $str &= $Cnum[0]
                                $n -= 1
                        EndIf
                Else
                        $str &= $Cnum[StringMid($number, $i, 1)] & $Cwei[$n - 1]
                        $n -= 1
                EndIf
        Next
        $wan = StringRegExp($str, '万', 3)
        $yi = StringRegExp($str, '亿', 3)
        If UBound($wan) > 1 Then $str = StringReplace($str, "万", "", UBound($wan) - 1)

        If UBound($yi) > 1 Then $str = StringReplace($str, "亿", "", UBound($yi) - 1)
        If StringRight($str, 1) = "零" Then $str = StringMid($str, 1, StringLen($str) - 1)
        If StringLen($xiao) > 0 Then
                If StringLen($str) > 0 Then
                        $str = $str & "点" & $xiao
                Else
                        $str = "零点" & $xiao
                EndIf
        EndIf
        Return $str
EndFunc   ;==>NUM2CWORD```





本文固定链接: http://www.jianyiit.com/post-94.html

blogger
该日志由 绿色风 于2015-4-16 13:22 Thursday发表在 分类下。
版权所有:《绿色风's Blog》 → 《阿拉伯数字转换成中文大写数字》;
除特别标注,本博客很多文章均为原创. 互联分享,尊重版权,转载请以链接形式标明本文地址;
本文标签:

扫描二维码,在手机上阅读
上一篇::图片分割器
下一篇:Au3[规则验证码]自动识别,并输出程序

热门文章

相关文章

  • base64图片数据解密转图片
  • BlockInput函数扩展【阻止来自鼠标和键盘的所有输入,而不会显示UAC警告】
  • 高效的删除重复行,使用Dictionary对象
  • Au3 随机生成不重复的中文
  • 内存优化代码
取消回复

发表评论

亲,头像对么?

74 + 92 =

提交中,请稍候……


木有头像就木JJ啦!还木有头像吗?点这里申请属于你的个性Gravatar头像吧!


    站点统计
    • 运行时间: 20254 天
    • 日志总数: 365 篇
    • 评论数量: 7238 条
    • 微语数量: 6 条
    • 附件总量: 388 件
  • 逝出的青春

  • 打赏"绿色风"



      扫码关注本站公众号 可搜本站内容

  • Autoit V3 脚本交流群

      常驻群1:905774875
      常驻群2:40672266


  • 链接

    • AU3中文论坛
    • Excel资料库
    • 完美者博客
    • 顺网小哥'S Blog
    • 猛牛哥的博客
    • 网吧系统下载
  • 分类

    • 流●年(66)
    • 笔●记(0)
    • 脚●本(0)
    • 作品(21)
    • 学习随记(51)
    • 源码示例(68)
    • UDF(收集)(26)
    • 工作室UDF(30)
    • 工具●教程(62)
    • 教程之GDI(24)
Copyright © 2013 绿色风's Blog. Powered by emlog. Theme by 射雕天龙. 鄂ICP备2021011689号-1 鄂公网安备42102302000078号 sitemap