摘要:數(shù)字轉(zhuǎn)換成中文針對財(cái)務(wù)數(shù)據(jù)將金額數(shù)據(jù)轉(zhuǎn)換成大寫,在網(wǎng)上有很多例子,總感覺有更簡單的方式實(shí)現(xiàn),下面是具體的源碼和探究。目前支持持位數(shù),如果更大的數(shù)據(jù)可進(jìn)行修正。
數(shù)字轉(zhuǎn)換成中文
針對財(cái)務(wù)數(shù)據(jù)將金額數(shù)據(jù)轉(zhuǎn)換成大寫,在網(wǎng)上有很多例子,總感覺有更簡單的方式實(shí)現(xiàn),下面是具體的源碼和探究。如果疑問,或更好的建議歡迎留言,共同學(xué)習(xí)。
源碼class NumToZh_cn { numLevel = [ "", "拾", "佰", "仟", "萬", "拾", "佰", "仟", "億", "拾", "佰", "仟", "萬", "拾", "佰", "仟", "億" ] currencyUnit = [ "角", "分" ] numMapToCh = { "0": "零", "1": "壹", "2": "貳", "3": "叁", "4": "肆", "5": "伍", "6": "陸", "7": "柒", "8": "捌", "9": "玖" } _test( arr, item, index ){ const unit = this.numLevel[ arr.length - index - 1 ]; return item === "0" ? /(萬|億)/.test(unit) ? unit : "零" : this.numMapToCh[ item ] + unit; } _dataIntHandle( arr ){ return arr.map( ( item, index ) => this._test(arr, item, index ) ) .join("") .replace(/零+/g, "零" ) .replace(/零$/,"") + "元"; } _dataDeciHandle( arr ){ return arr.map( ( item, index ) => item === "0" ? "" : this.numMapToCh[ item ] + this.currencyUnit[ index ] ).join(""); } convert( numStr ){ numStr = "" + numStr; if( !/^d+(.d+)?$/.test( numStr.trim() ) ) throw "param is not number"; const [ x="", y="" ] = numStr.split("."); return this._dataIntHandle( x.split("") ) + this._dataDeciHandle( y.split("") ) + "整"; } } const numToZh_cn = new NumToZh_cn(); export { NumToZh_cn }源碼說明
通過 num 與中文的映射實(shí)現(xiàn),避免了傳統(tǒng)的循環(huán)遍歷的實(shí)現(xiàn)方式。目前支持持17位數(shù),如果更大的數(shù)據(jù)可進(jìn)行修正。
numToZh_cn( 100400 ) // 壹拾萬零肆佰零元整
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://m.hztianpu.com/yun/104067.html
摘要:過去工作中使用較多,碰到并解決了各種大大小小的問題,總結(jié)出這樣一篇文章,一方面記錄自己踩過的坑,一方面與大家分享,讓大家少走彎路,并不斷完善之,歡迎大家去上面和提交,不斷補(bǔ)充和優(yōu)化,打造最全面的開發(fā)解決方案地址原文地址基礎(chǔ)小試牛刀引用文 過去工作中使用PHPExcel較多,碰到并解決了各種大大小小的問題,總結(jié)出這樣一篇文章,一方面記錄自己踩過的坑,一方面與大家分享,讓大家少走彎路,并不...
摘要:文章首發(fā)地址深入分析中的中文編碼問題背景編碼問題一直困擾著程序開發(fā)人員,尤其是在中更加明顯,因?yàn)槭强缙脚_的語言,在不同平臺的編碼之間的切換較多。 文章首發(fā)地址:深入分析 Java Web 中的中文編碼問題 背景: 編碼問題一直困擾著程序開發(fā)人員,尤其是在 Java 中更加明顯,因?yàn)?Java 是跨平臺的語言,在不同平臺的編碼之間的切換較多。接下來將介紹 Java 編碼問題出現(xiàn)的根本原...
閱讀 775·2021-11-22 13:54
閱讀 3183·2021-09-26 10:16
閱讀 3606·2021-09-08 09:35
閱讀 1643·2019-08-30 15:55
閱讀 3488·2019-08-30 15:54
閱讀 2144·2019-08-30 10:57
閱讀 551·2019-08-29 16:25
閱讀 935·2019-08-29 16:15