人民币大写在线转换工具
<!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>
人民币大写在线转换工具相关推荐
- gbk编码在线转换工具_TOOLFK工具-在线汉字/字母/人民币/简繁体转换工具
本文要推荐的[TOOLFK]在线汉字/字母/人民币/简繁体转换工具,提供简繁体在线转换.人民币大写转换.字母大小写互转.汉字转拼音在线日常使用工具. 網站名稱:ToolFk 網站鏈結:https:// ...
- TOOLFK工具-在线汉字/字母/人民币/简繁体转换工具
本文要推荐的[TOOLFK]在线汉字/字母/人民币/简繁体转换工具,提供简繁体在线转换.人民币大写转换.字母大小写互转.汉字转拼音在线日常使用工具. 網站名稱:ToolFk 網站鏈結:https:// ...
- HTML Encode 编码在线转换工具
HTML Encode 编码在线转换工具 请输入编/解码的进制(2, 8, 10, 16) 请输入编/解码的前缀("&#xH:16进制, &#D:10进制") 请输 ...
- 使用Blazor做个简单的时间戳在线转换工具
时间戳转换 时间戳转换,关键点在于双向绑定@bind-Value,就简单贴源码吧 TimestampTool.razor @page "/timestamp" @using Bla ...
- gbk编码在线转换工具_珍藏的4个PDF格式转换网站「在线工具,无需下载,还免费哦。」...
PDF文件相信大家并不陌生,我们经常在工作中都会收到客户.同事.老板发来这种PDF文件,这些文件往往都会记录着一些产品的详细介绍与说明.但是PDF并不是那么好编辑的,我们通常都会将PDF转换成Offi ...
- Base64在线转换工具(详解)
1.项目背景: 在计算机中一个字节共有256种,即ascii码表,而ascii码的128~255之间的值是不可见字符,对于一些只支持可见字符的协议,比如邮件传输协议(SMTP)只支持可见的ASCII字 ...
- 在线BASE64加密解密、UrlEncode编码/解码、native/ascii在线转换工具 -toolfk程序员工具网
本文要推荐的[ToolFk]是一款程序员经常使用的线上免费测试工具箱,ToolFk 特色是专注于程序员日常的开发工具,不用安装任何软件,只要把内容贴上按一个执行按钮,就能获取到想要的内容结果.Tool ...
- html utf 8编码转换器,utf8和gb2312编码在线转换工具
utf8和gb2312编码在线转换工具_网页代码站(www.webdm.cn) style="Z-INDEX: 1000; VISIBILITY: hidden; WIDTH: 1px; P ...
- 一个简体/繁体字在线转换工具源码
<html> <head> <META HTTP-EQUIV="MSThemeCompatible" CONTENT="Yes"& ...
最新文章
- excel中自动统计计算方法
- jakarta_迁移到Jakarta EE 9
- c语言 自动包含头文件,C语言不要重复包含.h头文件和.c文件
- 里怎么做页眉页脚_这年头县城里在家做的电商利润怎么样
- python项目之站长素材爬取
- 可折叠手机Galaxy Fold被曝屏幕问题后 三星股价下跌逾3%
- jquery控制span的display属性为 none
- F2-网络模式相关命令
- Shell脚本学习-阶段二十六-Web服务与端口
- python通过什么对象连接数据库步骤_python如何连接数据库
- 我的IOS学习历程-第三天
- 「WTF系列」深入Java中的位操作
- Restlet Introduction
- 国务院印发《促进大数据发展行动纲要》
- 计算机二级java刷题_计算机二级等考 刷题时间安排以及刷题顺序分享
- Box plot (箱线图) 解读以及Python实现
- 【Springboot】——@Deprecated
- oracle 有iif么,ORACLE IIF声明
- 机器学习必知的八大神经网络架构
- 手工测试2年面临职场危机,3个月进阶自动化测试后,老板终于留我了...
热门文章
- linux查询服务器品牌命令,查看linux服务器的品牌和型号
- 机器人运动估计——IMU运动方程与ESKF原理介绍(上)
- 向左还是向右?Unity中俯视视角下人物智能转向的控制方法
- Win11新加硬盘不显示的解决方法
- tpl文件如何导入ps?tpl文件笔刷怎么安装?
- VS2017编译文件遇到fatal error C1010: 在查找预编译头时遇到意外的文件结尾的解决办法
- CPU load高但CPU usage低问题排查
- trac mysql_Ubuntu安装Trac+svn+apache+ldap+[mysql]认证
- pr cpu100%_PR插件proDAD4.0.487.1安装教程
- 形式语言:含偶数个零和奇数个一的正则表达式