<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>人民币大写在线转换工具</title>
    <script>
        function chineseNumber(dValue) {
    var maxDec = 2;
    // 验证输入金额数值或数值字符串:
    dValue = dValue.toString().replace(/,/g, "");
    dValue = dValue.replace(/^0+/, ""); // 金额数值转字符、移除逗号、移除前导零
    if (dValue == "") {
        return "零";
    } // (错误:金额为空!)
    else if (isNaN(dValue)) {
        return "错误:金额不是合法的数值!";
    }
    var minus = ""; // 负数的符号“-”的大写:“负”字。可自定义字符,如“(负)”。
    var CN_SYMBOL = ""; // 币种名称(如“人民币”,默认空)
    if (dValue.length > 1) {
        if (dValue.indexOf('-') == 0) {
            dValue = dValue.replace("-", "");
            minus = "负";
        } // 处理负数符号“-”
        if (dValue.indexOf('+') == 0) {
            dValue = dValue.replace("+", "");
        } // 处理前导正数符号“+”(无实际意义)
    }
    // 变量定义:
    var vInt = "";
    var vDec = ""; // 字符串:金额的整数部分、小数部分
    var resAIW; // 字符串:要输出的结果
    var parts; // 数组(整数部分.小数部分),length=1时则仅为整数。
    var digits, radices, bigRadices, decimals; // 数组:数字(0~9——零~玖);基(十进制记数系统中每个数字位的基是10——拾,佰,仟);大基(万,亿,兆,京,垓,杼,穰,沟,涧,正);辅币(元以下,角/分/厘/毫/丝)。
    var zeroCount; // 零计数
    var i, p, d; // 循环因子;前一位数字;当前位数字。
    var quotient, modulus; // 整数部分计算用:商数、模数。
    // 金额数值转换为字符,分割整数部分和小数部分:整数、小数分开来搞(小数部分有可能四舍五入后对整数部分有进位)。
    var NoneDecLen = (typeof (maxDec) == "undefined" || maxDec == null || Number(maxDec) < 0 || Number(maxDec) > 5); // 是否未指定有效小数位(true/false)
    parts = dValue.split('.'); // 数组赋值:(整数部分.小数部分),Array的length=1则仅为整数。
    if (parts.length > 1) {
        vInt = parts[0];
        vDec = parts[1]; // 变量赋值:金额的整数部分、小数部分
        if (NoneDecLen) {
            maxDec = vDec.length > 5 ? 5 : vDec.length;
        } // 未指定有效小数位参数值时,自动取实际小数位长但不超5。
        var rDec = Number("0." + vDec);
        rDec *= Math.pow(10, maxDec);
        rDec = Math.round(Math.abs(rDec));
        rDec /= Math.pow(10, maxDec); // 小数四舍五入
        var aIntDec = rDec.toString().split('.');
        if (Number(aIntDec[0]) == 1) {
            vInt = (Number(vInt) + 1).toString();
        } // 小数部分四舍五入后有可能向整数部分的个位进位(值1)
        if (aIntDec.length > 1) {
            vDec = aIntDec[1];
        } else {
            vDec = "";
        }
    } else {
        vInt = dValue;
        vDec = "";
        if (NoneDecLen) {
            maxDec = 0;
        }
    }
    if (vInt.length > 44) {
        return "错误:数值过大!整数位长【" + vInt.length.toString() + "】超过了上限!";
    }
    // 准备各字符数组 Prepare the characters corresponding to the digits:
    digits = new Array("零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖"); // 零~玖
    radices = new Array("", "拾", "佰", "仟"); // 拾,佰,仟
    bigRadices = new Array("", "万", "亿", "兆", "京", "垓", "杼", "穰", "沟", "涧", "正"); // 万,亿,兆,京,垓,杼,穰,沟,涧,正
    decimals = new Array("角", "分", "厘", "毫", "丝"); // 角/分/厘/毫/丝
    resAIW = ""; // 开始处理
    // 处理整数部分(如果有)
    if (Number(vInt) > 0) {
        zeroCount = 0;
        for (i = 0; i < vInt.length; i++) {
            p = vInt.length - i - 1;
            d = vInt.substr(i, 1);
            quotient = p / 4;
            modulus = p % 4;
            if (d == "0") {
                zeroCount++;
            } else {
                if (zeroCount > 0) {
                    resAIW += digits[0];
                }
                zeroCount = 0;
                resAIW += digits[Number(d)] + radices[modulus];
            }
            if (modulus == 0 && zeroCount < 4) {
                resAIW += bigRadices[quotient];
            }
        }
        resAIW;
    }
    // 处理小数部分(如果有)
    for (i = 0; i < vDec.length; i++) {
        d = vDec.substr(i, 1);
        if (d != "0") {
            resAIW += digits[Number(d)] + decimals[i];
        }
    }
    // 处理结果
    if (resAIW == "") {
        resAIW = "零";
    } // 零元
    if (vDec == "") {
        resAIW ;
    } // ...元整
    resAIW = CN_SYMBOL + minus + resAIW; // 人民币/负......元角分/整
    return resAIW;
}
    </script>
</head>

<body>

输入数字
<input id="aa" value="123456789" οninput="return Edit1Change();">
转换后
<input id="bb" value="111" style="width: 400px" >
    <script>
        var j=chineseNumber(document.getElementById("aa").value);
        document.getElementById("bb").value=j;
        
        function Edit1Change(){
            
            document.getElementById("bb").value=chineseNumber(document.getElementById("aa").value);
        }
    </script>

</body>
</html>

人民币大写在线转换工具相关推荐

  1. gbk编码在线转换工具_TOOLFK工具-在线汉字/字母/人民币/简繁体转换工具

    本文要推荐的[TOOLFK]在线汉字/字母/人民币/简繁体转换工具,提供简繁体在线转换.人民币大写转换.字母大小写互转.汉字转拼音在线日常使用工具. 網站名稱:ToolFk 網站鏈結:https:// ...

  2. TOOLFK工具-在线汉字/字母/人民币/简繁体转换工具

    本文要推荐的[TOOLFK]在线汉字/字母/人民币/简繁体转换工具,提供简繁体在线转换.人民币大写转换.字母大小写互转.汉字转拼音在线日常使用工具. 網站名稱:ToolFk 網站鏈結:https:// ...

  3. HTML Encode 编码在线转换工具

    HTML Encode 编码在线转换工具 请输入编/解码的进制(2, 8, 10, 16) 请输入编/解码的前缀("&#xH:16进制, &#D:10进制") 请输 ...

  4. 使用Blazor做个简单的时间戳在线转换工具

    时间戳转换 时间戳转换,关键点在于双向绑定@bind-Value,就简单贴源码吧 TimestampTool.razor @page "/timestamp" @using Bla ...

  5. gbk编码在线转换工具_珍藏的4个PDF格式转换网站「在线工具,无需下载,还免费哦。」...

    PDF文件相信大家并不陌生,我们经常在工作中都会收到客户.同事.老板发来这种PDF文件,这些文件往往都会记录着一些产品的详细介绍与说明.但是PDF并不是那么好编辑的,我们通常都会将PDF转换成Offi ...

  6. Base64在线转换工具(详解)

    1.项目背景: 在计算机中一个字节共有256种,即ascii码表,而ascii码的128~255之间的值是不可见字符,对于一些只支持可见字符的协议,比如邮件传输协议(SMTP)只支持可见的ASCII字 ...

  7. 在线BASE64加密解密、UrlEncode编码/解码、native/ascii在线转换工具 -toolfk程序员工具网

    本文要推荐的[ToolFk]是一款程序员经常使用的线上免费测试工具箱,ToolFk 特色是专注于程序员日常的开发工具,不用安装任何软件,只要把内容贴上按一个执行按钮,就能获取到想要的内容结果.Tool ...

  8. html utf 8编码转换器,utf8和gb2312编码在线转换工具

    utf8和gb2312编码在线转换工具_网页代码站(www.webdm.cn) style="Z-INDEX: 1000; VISIBILITY: hidden; WIDTH: 1px; P ...

  9. 一个简体/繁体字在线转换工具源码

    <html> <head> <META HTTP-EQUIV="MSThemeCompatible" CONTENT="Yes"& ...

最新文章

  1. excel中自动统计计算方法
  2. jakarta_迁移到Jakarta EE 9
  3. c语言 自动包含头文件,C语言不要重复包含.h头文件和.c文件
  4. 里怎么做页眉页脚_这年头县城里在家做的电商利润怎么样
  5. python项目之站长素材爬取
  6. 可折叠手机Galaxy Fold被曝屏幕问题后 三星股价下跌逾3%
  7. jquery控制span的display属性为 none
  8. F2-网络模式相关命令
  9. Shell脚本学习-阶段二十六-Web服务与端口
  10. python通过什么对象连接数据库步骤_python如何连接数据库
  11. 我的IOS学习历程-第三天
  12. 「WTF系列」深入Java中的位操作
  13. Restlet Introduction
  14. 国务院印发《促进大数据发展行动纲要》
  15. 计算机二级java刷题_计算机二级等考 刷题时间安排以及刷题顺序分享
  16. Box plot (箱线图) 解读以及Python实现
  17. 【Springboot】——@Deprecated
  18. oracle 有iif么,ORACLE IIF声明
  19. 机器学习必知的八大神经网络架构
  20. 手工测试2年面临职场危机,3个月进阶自动化测试后,老板终于留我了...

热门文章

  1. linux查询服务器品牌命令,查看linux服务器的品牌和型号
  2. 机器人运动估计——IMU运动方程与ESKF原理介绍(上)
  3. 向左还是向右?Unity中俯视视角下人物智能转向的控制方法
  4. Win11新加硬盘不显示的解决方法
  5. tpl文件如何导入ps?tpl文件笔刷怎么安装?
  6. VS2017编译文件遇到fatal error C1010: 在查找预编译头时遇到意外的文件结尾的解决办法
  7. CPU load高但CPU usage低问题排查
  8. trac mysql_Ubuntu安装Trac+svn+apache+ldap+[mysql]认证
  9. pr cpu100%_PR插件proDAD4.0.487.1安装教程
  10. 形式语言:含偶数个零和奇数个一的正则表达式