阿拉伯数字
有些时候需要用到阿拉伯数字转中文汉字的需求,阿拉伯数字在代码上比较好操作,比如++,–等操作,加上jsp里的foreach标签,status里可以知道当前行号,但是页面需要显示中文汉字,如第1阶段,第2阶段变成第一阶段,第二阶段等,这个时候就需要一个js进行转换。
阿拉伯数字–>中文汉字
代码如下:
<script type="text/javascript">
var chnNumChar = ["零","一","二","三","四","五","六","七","八","九"];
var chnUnitSection = ["","万","亿","万亿","亿亿"];
var chnUnitChar = ["","十","百","千"];
function SectionToChinese(section){
var strIns = '', chnStr = '';
var unitPos = 0;
var zero = true;
while(section > 0){
var v = section % 10;
if(v === 0){
if(!zero){
zero = true;
chnStr = chnNumChar[v] + chnStr;
}
}else{
zero = false;
strIns = chnNumChar[v];
strIns += chnUnitChar[unitPos];
chnStr = strIns + chnStr;
}
unitPos++;
section = Math.floor(section / 10);
}
return chnStr;
}
function NumberToChinese(num){
var unitPos = 0;
var strIns = '', chnStr = '';
var needZero = false;
if(num === 0){
return chnNumChar[0];
}
while(num > 0){
var section = num % 10000;
if(needZero){
chnStr = chnNumChar[0] + chnStr;
}
strIns = SectionToChinese(section);
strIns += (section !== 0) ? chnUnitSection[unitPos] : chnUnitSection[0];
chnStr = strIns + chnStr;
needZero = (section < 1000) && (section > 0);
num = Math.floor(num / 10000);
unitPos++;
}
return chnStr;
}
alert(NumberToChinese(123));
</script>
运行页面,弹出一百二十三
中文汉字–>阿拉伯数字
代码如下:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<script type="text/JavaScript">
var chnNumChar = {
零:0,
一:1,
二:2,
三:3,
四:4,
五:5,
六:6,
七:7,
八:8,
九:9
};
var chnNameValue = {
十:{value:10, secUnit:false},
百:{value:100, secUnit:false},
千:{value:1000, secUnit:false},
万:{value:10000, secUnit:true},
亿:{value:100000000, secUnit:true}
}
function ChineseToNumber(chnStr){
var rtn = 0;
var section = 0;
var number = 0;
var secUnit = false;
var str = chnStr.split('');
for(var i = 0; i < str.length; i++){
var num = chnNumChar[str[i]];
if(typeof num !== 'undefined'){
number = num;
if(i === str.length - 1){
section += number;
}
}else{
var unit = chnNameValue[str[i]].value;
secUnit = chnNameValue[str[i]].secUnit;
if(secUnit){
section = (section + number) * unit;
rtn += section;
section = 0;
}else{
section += (number * unit);
}
number = 0;
}
}
return rtn + section;
}
alert(ChineseToNumber('二百二十九'));
</script>
</body>
</html>
运行弹出229
博客对你有用记得访问下哦,增加下访问量,如有需要可以下单购买哦_。https://item.taobao.com/item.htm?id=569617707364
相关阅读
1. 问题背景 使用相同的汉字字符串进行MD5计算,有时候会遇到:使用不同的在线工具,得到不同的MD5计算结果。 2. 原因 出现这样情况的
查询网址: https://www.qqxiuzi.cn/bianma/zifuji.php 查询示例: 常见的汉字字符集编码: GB2312编码:1981年5月1日发布的简体中
之前没有用过OLED来显示汉字,今天心血来潮想做一个RTC的万年历,想着就用OLED来用汉字显示一下,(stm32万年历制作链接:点击打开链接),之
abstract: 包括汉字发展-数量-国标 汉字的数量并没有准确数字,大约将近十万个(北京国安咨询设备公司汉字字库收入有出处汉字91251
最近有个哥们请我帮他们单位整一个区位码查询的东东。弄了一下,放在这里,请有用的着的哥们参考。有不妥的地方,请大家多提意见。原理