摘要:零壹貳叁肆伍陸柒捌玖拾佰仟萬拾佰仟億拾佰仟萬拾佰仟整數(shù)部分小數(shù)部分結(jié)果是否為你輸入的數(shù)字過大當(dāng)前位的數(shù)字當(dāng)前位的數(shù)字對(duì)應(yīng)的中文大寫數(shù)字當(dāng)前位的前一位數(shù)字當(dāng)前位的前第二位數(shù)字當(dāng)前位的第三位數(shù)字當(dāng)前位的后第一位數(shù)字當(dāng)前位的后第二位數(shù)字當(dāng)前
function toCNcase(num) { num = String(num); var cn = ["零", "壹", "貳", "叁", "肆", "伍", "陸", "柒", "捌", "玖"]; var position = ["", "拾", "佰", "仟", "萬", "拾", "佰", "仟", "億", "拾", "佰", "仟", "萬", "拾", "佰", "仟"]; // 整數(shù)部分 var intPart = num.split(".")[0]; // 小數(shù)部分 var floatPart = num.split(".")[1]; // 結(jié)果 var result = ""; // 是否為0 var isZero = false; if(intPart.length > position.length){ return "你輸入的數(shù)字過大" } for (var index = 0; index < intPart.length; index++) { var num = intPart[index]; // 當(dāng)前位的數(shù)字 var numCN = cn[num]; // 當(dāng)前位的數(shù)字對(duì)應(yīng)的中文大寫數(shù)字 var numPreOne = intPart[index - 1]; // 當(dāng)前位的前一位數(shù)字 var numPreTwo = intPart[index - 2]; // 當(dāng)前位的前第二位數(shù)字 var numPreThree = intPart[index - 3]; // 當(dāng)前位的第三位數(shù)字 var numNextOne = intPart[index + 1] // 當(dāng)前位的后第一位數(shù)字 var numNextTwo = intPart[index + 2] // 當(dāng)前位的后第二位數(shù)字 var numNextThree = intPart[index + 3] // 當(dāng)前位的后第三位數(shù)字 var pos = position[intPart.length - index - 1] // 當(dāng)前數(shù)字對(duì)應(yīng)的單位 if (num != 0) { // 當(dāng)前位數(shù)字不為0,用大寫數(shù)加單位 result += numCN + pos; } else if ("億" === pos || ("萬" === pos && [numPreOne, numPreTwo, numPreThree].some(function (num) { return num !== "0" }))) { // 當(dāng)前位數(shù)字為0,單位億不能省略,單位萬的前三位任意一位不為0,不能省略萬 result += pos; } else if ("仟" === pos && [numNextOne, numNextTwo, numNextThree].some(function (num) { return num !== "0" })) { // 當(dāng)前數(shù)字是0,單位是含有仟,并且后四位不全部為0,補(bǔ)充一個(gè)零 result += numCN; } else if ("佰" === pos && numPreOne !== "0" && [numNextOne, numNextTwo].some(function (num) { return num !== "0" })) { // 當(dāng)前位數(shù)字為0,單位含有佰,并且當(dāng)前位的前一位不為0,補(bǔ)充一個(gè)零 result += numCN; } else if ("拾" === pos && numPreOne !== "0" && numNextOne !== "0") { // 當(dāng)前位數(shù)字為0,單位含有拾,并且當(dāng)前位的前一位不為0,補(bǔ)充一個(gè)零 result += numCN; } } result += "圓" var floatPositon = ["角","分"]; for (var index = 0; index < floatPart.length; index++) { var num = floatPart[index]; // 當(dāng)前位的數(shù)字 var numCN = cn[num]; // 當(dāng)前位的數(shù)字對(duì)應(yīng)的中文大寫數(shù)字 var pos = floatPositon[index] || ""; if(num !== "0" && pos){ result += numCN + pos ; } } return result; }
使用方式:toCNcase(11002031022.0234);
結(jié)果:壹佰壹拾億零貳佰零叁萬壹仟零貳拾貳圓貳分
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/99300.html
摘要:將人民幣中金額數(shù)字轉(zhuǎn)化為中文大寫壹拾貳億叁仟肆佰伍拾陸萬柒仟捌佰玖拾圓零壹貳叁肆伍陸柒捌玖圓角分拾佰仟萬拾佰仟億 1.將人民幣中金額數(shù)字轉(zhuǎn)化為中文大寫 echo toChineseNumber(1234567890);//壹拾貳億叁仟肆佰伍拾陸萬柒仟捌佰玖拾圓 function toChineseNumber($money){ $money = round($money,2);...
摘要:壹拾貳億叁仟肆佰伍拾陸萬柒仟捌佰玖拾圓零壹貳叁肆伍陸柒捌玖圓角分拾佰仟萬拾佰仟億 phpecho toChineseNumber(1234567890);//壹拾貳億叁仟肆佰伍拾陸萬柒仟捌佰玖拾圓 function toChineseNumber($money){ $money = round($money,2); $cnynums = array(零,壹,貳,叁,肆,...
摘要:目前較好的語音識(shí)別系統(tǒng)采用雙向長短時(shí)記憶網(wǎng)絡(luò),,這種網(wǎng)絡(luò)能夠?qū)φZ音的長時(shí)相關(guān)性進(jìn)行建模,從而提高識(shí)別正確率。因而科大訊飛使用深度全序列卷積神經(jīng)網(wǎng)絡(luò)來克服雙向的缺陷。 人工智能的應(yīng)用中,語音識(shí)別在今年來取得顯著進(jìn)步,不管是英文、中文或者其他語種,機(jī)器的語音識(shí)別準(zhǔn)確率在不斷上升。其中,語音聽寫技術(shù)的發(fā)展更為迅速,目前已廣泛在語音輸入、語音搜索、語音助手等產(chǎn)品中得到應(yīng)用并日臻成熟。但是,語音應(yīng)用的...
摘要:數(shù)字轉(zhuǎn)換成中文針對(duì)財(cái)務(wù)數(shù)據(jù)將金額數(shù)據(jù)轉(zhuǎn)換成大寫,在網(wǎng)上有很多例子,總感覺有更簡(jiǎn)單的方式實(shí)現(xiàn),下面是具體的源碼和探究。目前支持持位數(shù),如果更大的數(shù)據(jù)可進(jìn)行修正。 數(shù)字轉(zhuǎn)換成中文 針對(duì)財(cái)務(wù)數(shù)據(jù)將金額數(shù)據(jù)轉(zhuǎn)換成大寫,在網(wǎng)上有很多例子,總感覺有更簡(jiǎn)單的方式實(shí)現(xiàn),下面是具體的源碼和探究。如果疑問,或更好的建議歡迎留言,共同學(xué)習(xí)。 源碼 class NumToZh_cn { numLeve...
閱讀 1585·2021-11-25 09:43
閱讀 2488·2019-08-30 15:54
閱讀 2952·2019-08-30 15:53
閱讀 1102·2019-08-30 15:53
閱讀 757·2019-08-30 15:52
閱讀 2551·2019-08-26 13:36
閱讀 822·2019-08-26 12:16
閱讀 1221·2019-08-26 12:13