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