JS将数字转换为中文

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>JS将数字转换为中文</title>
</head>
<body>
<script>
    // 定义转换函数
    function transform(tranvalue){
        try{
            var i=1;
            var dw2 = new Array("","万","亿");//大单位
            var dw1 = new Array("拾","佰","仟");//小单位
            var dw = new Array("零","壹","贰","叁","肆","伍","陆","柒","捌","玖");//整数部分用
            //以下是小写转换成大写显示在合计大写的文本框中
            //分离整数与小数
            var source = splits(tranvalue);
            var num = source[0];
            var dig = source[1];

            //转换整数部分
            var k1=0;//计小单位
            var k2=0;//计大单位
            var sum = 0;
            var str="";
            var len = source[0].length;//整数的长度
            for(i=1;i<=len;i++){
                var n = source[0].charAt(len-i);//取得某个位数上的数字
                var bn = 0;
                if(len-i-1>=0){
                    bn = source[0].charAt(len-i-1);//取得某个位数前一位上的数字
                }
                sum = sum+Number(n);
                if(sum!=0){
                    str = dw[Number(n)].concat(str);//取得该数字对应的大写数字,并插入到str字符串的前面
                    if(n==‘0‘)sum = 0;
                }
                if(len-i-1>=0){//在数字范围内
                    if(k1!=3){//加小单位
                        if(bn!=0){
                            str = dw1[k1].concat(str);
                        }
                        k1++;
                    }else{//不加小单位,加大单位
                        k1=0;
                        var temp = str.charAt(0);
                        if(temp=="万" || temp=="亿")//若大单位前没有数字则舍去大单位
                            str = str.substr( 1, str.length-1);
                        str = dw2[k2].concat(str);
                        sum = 0;
                    }
                }
                if(k1==3)//小单位到千则大单位进一
                { k2++;}
            }

            //转换小数部分
            var strdig="";
            if(dig!=""){
                var n = dig.charAt(0);
                if(n!=0){
                    strdig += dw[Number(n)]+"角";//加数字
                }
                var n = dig.charAt(1);
                if(n!=0){
                    strdig += dw[Number(n)]+"分";//加数字
                }
            }
            str += "元"+strdig;
        }catch(e){
            return "0元";
        }
        return str;
    }

    //拆分整数与小数
    function splits(tranvalue){
        var value = new Array(‘‘,‘‘);
        temp = tranvalue.split(".");
        for(var i=0;i<temp.length;i++){
            value[i] = temp[i];
        }
        return value;
    }

    // 调用
    var a = ‘12345678‘;
    var b = transform(a);
    console.log(b);

</script>
</body>
</html>

运行后的结果:

壹仟贰佰叁拾肆万伍仟陆佰柒拾捌元

原文地址:https://www.cnblogs.com/kynewu/p/9166428.html

时间: 2024-11-10 14:51:48

JS将数字转换为中文的相关文章

JS判断数字、中文、小数位数

1.JS判断数字 ①var value=$("#test").val(); if(!isNaN(value)){ alert("是数字"); }else{ alert("不是数字"); } ②function checkRate(input) { var re = /^[0-9]+.?[0-9]*$/; //判断字符串是否为数字 //判断正整数 /^[1-9]+[0-9]*]*$/ var nubmer = document.getElement

js中数字转换为字符串 几种方法

a. 要把一个数字转换为字符串,只要给它添加一个空的字符串即可: var n = 100; var n_as_string = n + ""; b. 要让数字更加显式地转换为字符串,可以使用String()函数:  var string_value = String(number); c. 使用toString()方法:  string_value = number.toString(); Number对象的(基本的数字转换为Number对象,以便可以调用这个方法)toString()

数字转中文,大写,金额

最近,又发现了另外一种数字转中文,大写,金额的方法,觉得会比之前找到的跟合适一点:npm安装包地址:https://npm.taobao.org/package/nzh(在这里,会有更加详细的使用介绍.而我就只是测了其中一种......) 简介:Nzh适用于开发过程中需要将数字转换为中文的场景 以字符串的方式转换,解决超大数及浮点数等问题,请自行对原数据进行四舍五入等操作. 1.首先在项目中安装依赖包:npm install nzh 2.其实这是自己在做小测试的时候,使用nzh的,在安装完依赖包

数字货币转换为中文货币

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Typ

将金额数字转换为大写汉字的js函数

1 //将金额数字转换为大写汉字的函数 2 function convertCurrency(money) { 3 //汉字的数字 4 var cnNums = new Array('零', '壹', '贰', '叁', '肆', '伍', '陆', '柒', '捌', '玖'); 5 //基本单位 6 var cnIntRadice = new Array('', '拾', '佰', '仟'); 7 //对应整数部分扩展单位 8 var cnIntUnits = new Array('', '

【iOS开发系列】将阿拉伯数字转换为中文数字

/** * 将阿拉伯数字转换为中文数字 */ +(NSString *)translationArabicNum:(NSInteger)arabicNum { NSString *arabicNumStr = [NSString stringWithFormat:@"%ld",(long)arabicNum]; NSArray *arabicNumeralsArray = @[@"1",@"2",@"3",@"4&q

JS判断是否为数字,中文,小写、大写字母

/**  取得字符串的字节长度**/ 代码function strlen(str)   {      var i;      var len;            len = 0;      for (i=0;i<str.length;i++)      {          if (str.charCodeAt(i)>255) len+=2; else len++;      }      return len;   } /* * 判断是否为数字,是则返回true,否则返回false */

日期转换为中文大写数字

动手写一个转换日期的小方法,虽然很短,但是需要考虑的东西还是挺多的,记录一下. /// <summary> /// 将日期转换为中文大写 /// 如:一九八三 十一 二十七 /// </summary> public class ChineseNumberHelper { static Dictionary<int, string> _theNumOfChineseCapital = new Dictionary<int, string>() { {0,&q

js中字符串转换为数值的两种方法的区别

在js中字符串转换为数值的方法有三种:转换函数,强制类型转换,隐式转换 1.转换函数 parseInt()   //将字符串转换为整型 parseFloat()  //将字符串转换为浮点型 转换函数在进行类型转换时是可以传入参数的,默认转换为10进制,转换成功后返回的是整数类型的数值. 例:1. parseInt('AB3', 16) //返回结果:2739,表示将字符串转换为16进制的数值 2.parseInt('13', 10) //返回结果:13,表示将字符串转换为10进制的数值 3.pa