Javascript实现数字转中文大写
生活随笔
收集整理的這篇文章主要介紹了
Javascript实现数字转中文大写
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
最大處理數(shù)字位為十億,轉(zhuǎn)換規(guī)則為,千位有零必須讀,其他為沒零可以不讀
比如說一千萬零一百元,一千萬一千元,一千萬一萬一千元
思路大概是:先處理共通的,后處理個別特殊的(千位的零;多個零寫作一個)
然后根據(jù)長度判斷 確定 億,萬,x;加到末尾
把“零”以及后一個刪除,但是其后一個是“個”字,就不刪除“個”,
以及千位若是“零”則不刪除;另外,千位以下多個“零”只保留一個“零”(百位和十位可以為“零”)
把“個”替換為對應的“億,萬”
下面實現(xiàn)參考和轉(zhuǎn)自不知來源處: ```javascript function chineseNumber(num) { //漢字的數(shù)字 var cnNums = new Array('零', '壹', '貳', '叁', '肆', '伍', '陸', '柒', '捌', '玖'); //基本數(shù)位單位var cnIntRadice = new Array('', '拾', '佰', '仟');//整數(shù)部分擴展數(shù)位單位var cnIntUnits = new Array('', '萬', '億', '兆');//最大處理的數(shù)字var maxNum = 9999999999;//輸出的中文數(shù)字符串var chineseStr = '';// 如果輸入為空,返回空if (num == ''){return '';}if (parseInt(num) > maxNum) {//超出最大處理數(shù)字return '超出最大處理數(shù)字';}// 如果輸入為0,返回零if (num == '0'){chineseStr = cnNums[0];return chineseStr;}var zeroCount = 0; // 遇零計數(shù)var intLen = integerNum.length; // 數(shù)字符串總長度// 開始打印中文數(shù)字for (var i = 0; i < intLen; i++) {var n = integerNum.substr(i,1); //取字符var p = intLen - i - 1; //求數(shù)位級位置//例如:12345678, i=2位,下標[2](字符為3)-對應'拾'萬數(shù)級, 8-2-1=5 模%4佘1,取cnIntRadice[m]數(shù)組m=1位下標是'拾'var q = p / 4; //定-0空、1萬、2億、3兆 4種擴展數(shù)位var m = p % 4; //定-0空、1拾、2佰、3千 4種基本數(shù)位if (n == '0'){ //遇零計數(shù)zeroCount++;} else {if (zeroCount > 0 && m != 3){ //非千位有零存在加零字符,遇千跳過不加零chineseStr += cnNums[0];}//加入零字符后,計數(shù)歸零zeroCount = 0;//加入字符與位級'空拾佰千'chineseStr += cnNums[parseInt(n)] + cnIntRadice[m];}// 在空位級,加不加萬、億、兆if (m == 0 && zeroCount < 4){chineseStr += cnIntUnits[q];}}return chineseStr; }var integerNum = window.prompt('請輸入低于10位的數(shù)字',123456789); var chineseText = chineseNumber(integerNum);console.log('你輸入了:' + integerNum); console.log('中文大寫:' + chineseText); document.write('你輸入了:' + integerNum); document.write('<br>中文大寫:' + chineseText);
總結(jié)
以上是生活随笔為你收集整理的Javascript实现数字转中文大写的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: UE5导入MetaHuman
- 下一篇: 使用Java开发一个做数据共享的联盟链思