JS将阿拉伯数字转换为汉字
作者:互联网
脚本
输出:
一千二百三十四万五千六百七十 二亿零一 一千零一 四万四千零四
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 |
function toChinese(num) { num=Math.floor(num); var chinese=""; var digits=Math.floor(Math.log10(num))+1; var digit=['零','一','二','三','四','五','六','七','八','九']; var times=['','十','百','千','万']; if(digits>=9) { var quotient=Math.floor(num/Math.pow(10,8)); var remainder=num%Math.pow(10,8); var remainderDigits=Math.floor(Math.log10(remainder))+1; return toChinese(quotient)+'亿'+(remainderDigits<8?"零":"")+(remainder>0?toChinese(remainder):""); } //10000 0000 if(digits==1) return digit[num]; if(digits==2) { var quotient=Math.floor(num/10); var remainder=num%10; if(quotient>1) { chinese=digit[quotient]; } chinese=chinese+times[1]; if(remainder>0) { chinese=chinese+digit[remainder]; } return chinese; } if(digits>5) { var quotient=num/Math.pow(10,4); var remainder=num%Math.pow(10,4); var remainderDigits=Math.floor(Math.log10(remainder))+1; return toChinese(quotient)+'万'+(remainderDigits<4?"零":"")+(remainder>0?toChinese(remainder):""); } for(var index=digits;index>=1;index--) { var number=Math.floor(num/Math.pow(10,index-1)%10); //console.log(index+" "+number); if(number>0) { chinese=chinese+digit[number]+times[index-1]; } else { if(index>1) { var nextNumber=Math.floor(num/Math.pow(10,index-2)%10); if(nextNumber>0&&index>1) { chinese=chinese+digit[number]; } } } } return chinese; } console.log(toChinese(12345670)) console.log(toChinese(200000001)) console.log(toChinese(1001)) console.log(toChinese(44004)) |
一千二百三十四万五千六百七十 二亿零一 一千零一 四万四千零四
标签:10,chinese,index,阿拉伯数字,汉字,JS,num,var,Math 来源: https://www.cnblogs.com/yuxiaoxu/p/16327204.html