亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > PHP > 正文

php將金額數字轉化為中文大寫

2020-03-22 19:45:19
字體:
來源:轉載
供稿:網友
echo toChineseNumber(1234567890);//壹拾貳億叁仟肆佰伍拾陸萬柒仟捌佰玖拾圓function toChineseNumber($money){ $money = round($money,2); $cnynums = array("零","壹","貳","叁","肆","伍","陸","柒","捌","玖"); $cnyunits = array("圓","角","分"); $cnygrees = array("拾","佰","仟","萬","拾","佰","仟","億"); list($int,$dec) = explode(".",$money,2); $dec = array_filter(array($dec[1],$dec[0])); $ret = array_merge($dec,array(implode("",cnyMapUnit(str_split($int),$cnygrees)),"")); $ret = implode("",array_reverse(cnyMapUnit($ret,$cnyunits))); return str_replace(array_keys($cnynums),$cnynums,$ret); function cnyMapUnit($list,$units) { $ul=count($units); $xs=array(); foreach (array_reverse($list) as $x) { $l=count($xs); if ($x!="0" || !($l%4)) $n=($x=='0' '':$x).($units[($l-1)%$ul]); else $n=is_numeric($xs[0][0]) $x:''; array_unshift($xs,$n); return $xs; 代碼二:*數字金額轉換成中文大寫金額的函數*String Int $num 要轉換的小寫數字或小寫字符串*return 大寫字母*小數位為兩位function num_to_rmb($num){ $c1 = "零壹貳叁肆伍陸柒捌玖"; $c2 = "分角元拾佰仟萬拾佰仟億"; //精確到分后面就不要了,所以只留兩個小數位 $num = round($num, 2); //將數字轉化為整數 $num = $num * 100; if (strlen($num) 10) { return "金額太大,請檢查"; $i = 0; $c = ""; while (1) { if ($i == 0) { //獲取最后一位數字 $n = substr($num, strlen($num)-1, 1); } else { $n = $num % 10; //每次將最后一位數字轉化為中文 $p1 = substr($c1, 3 * $n, 3); $p2 = substr($c2, 3 * $i, 3); if ($n != '0' || ($n == '0' && ($p2 == '億' || $p2 == '萬' || $p2 == '元'))) { $c = $p1 . $p2 . $c; } else { $c = $p1 . $c; $i = $i + 1; //去掉數字最后一位了 $num = $num / 10; $num = (int)$num; //結束循環 if ($num == 0) { break; $j = 0; $slen = strlen($c); while ($j $slen) { //utf8一個漢字相當3個字符 $m = substr($c, $j, 6); //處理數字中很多0的情況,每次循環去掉一個漢字“零” if ($m == '零元' || $m == '零萬' || $m == '零億' || $m == '零零') { $left = substr($c, 0, $j); $right = substr($c, $j + 3); $c = $left . $right; $j = $j-3; $slen = $slen-3; $j = $j + 3; //這個是為了去掉類似23.0中最后一個“零”字 if (substr($c, strlen($c)-3, 3) == '零') { $c = substr($c, 0, strlen($c)-3); //將處理的漢字加上“整” if (empty($c)) { return "零元整"; }else{ return $c . "整";echo num_to_rmb(23000000.00); //貳仟叁佰萬元整代碼三://先貼一個數字轉中文的,最多12位數 function convert_2_cn($num) {$convert_cn = array("零","壹","貳","叁","肆","伍","陸","柒","捌","玖");$repair_number = array('零仟零佰零拾零','萬萬','零仟','零佰','零拾');$unit_cn = array("拾","佰","仟","萬","億");$exp_cn = array("","萬","億");$max_len = 12;$len = strlen($num);if($len $max_len) {return 'outnumber';$num = str_pad($num,12,'-',STR_PAD_LEFT);$exp_num = array();$k = 0;for($i=12;$i $i--){if($i%4 == 0) {$k++;$exp_num[$k][] = substr($num,$i-1,1);$str = '';foreach($exp_num as $key= $nums) {if(array_sum($nums)){$str = array_shift($exp_cn) . $str;foreach($nums as $nk= $nv) {if($nv == '-'){continue;}if($nk == 0) {$str = $convert_cn[$nv] . $str;} else {$str = $convert_cn[$nv].$unit_cn[$nk-1] . $str;$str = str_replace($repair_number,array('萬','億','-'),$str);$str = preg_replace("/-{2,}/","",$str);$str = str_replace(array('零','-'),array('','零'),$str);return $str;echo convert_2_cn(1111)."/n";echo convert_2_cn(111111)."/n";echo convert_2_cn(111111111111)."/n";//補充一個中文轉數字的function cn_2_num($str){$convert_cn = array("零","壹","貳","叁","肆","伍","陸","柒","捌","玖");$skip_words = array("拾","佰","仟");$str = str_replace($skip_words,"",$str);$len = mb_strlen($str,'utf-8');$num = 0;$k = '';for($i=0;$i $len;$i++) {$cn = mb_substr($str,$i,1,'utf-8');if($cn == '億') {$num = $num + intval($k)*100000000;$k = '';} elseif($cn == '萬') {$num = $num + intval($k)*10000;$k = '';} else {$k = $k . array_search($cn,$convert_cn);if($k) {$num = $num + intval($k);return $num; echo cn_2_num('壹仟壹佰壹拾壹億壹仟壹佰壹拾壹萬壹仟壹佰壹拾壹')."/n"; echo cn_2_num('拾壹萬壹仟壹佰壹拾壹')."/n"; 代碼四:function convertCurrency(currencyDigits) {// Constants:var MAXIMUM_NUMBER = 99999999999.99;// Predefine the radix characters and currency symbols for output:var CN_ZERO = "零";var CN_ONE = "壹";var CN_TWO = "貳";var CN_THREE = "叁";var CN_FOUR = "肆";var CN_FIVE = "伍";var CN_SIX = "陸";var CN_SEVEN = "柒";var CN_EIGHT = "捌";var CN_NINE = "玖";var CN_TEN = "拾";var CN_HUNDRED = "佰";var CN_THOUSAND = "仟";var CN_TEN_THOUSAND = "萬";var CN_HUNDRED_MILLION = "億";var CN_SYMBOL = "人民幣";var CN_DOLLAR = "元";var CN_TEN_CENT = "角";var CN_CENT = "分";var CN_INTEGER = "整";// Variables:var integral; // Represent integral part of digit number. var decimal; // Represent decimal part of digit number.var outputCharacters; // The output result.var parts;var digits, radices, bigRadices, decimals;var zeroCount;var i, p, d;var quotient, modulus;// Validate input string:currencyDigits = currencyDigits.toString();if (currencyDigits == "") { alert("Empty input!"); return "";if (currencyDigits.match(/[^,./d]/) != null) { alert("Invalid characters in the input string!"); return "";if ((currencyDigits).match(/^((/d{1,3}(,/d{3})*(.((/d{3},)*/d{1,3})) )|(/d+(./d+) ))$/) == null) { alert("Illegal format of digit number!"); return "";// Normalize the format of input digits:currencyDigits = currencyDigits.replace(/,/g, ""); // Remove comma delimiters.currencyDigits = currencyDigits.replace(/^0+/, ""); // Trim zeros at the beginning. // Assert the number is not greater than the maximum number.if (Number(currencyDigits) MAXIMUM_NUMBER) { alert("Too large a number to convert!"); return "";// http://www.knowsky.com/ Process the coversion from currency digits to characters:// Separate integral and decimal parts before processing coversion:parts = currencyDigits.split(".");if (parts.length 1) { integral = parts[0]; decimal = parts[1]; // Cut down redundant decimal digits that are after the second. decimal = decimal.substr(0, 2);else { integral = parts[0]; decimal = "";// Prepare the characters corresponding to the digits:digits = new Array(CN_ZERO, CN_ONE, CN_TWO, CN_THREE, CN_FOUR, CN_FIVE, CN_SIX, CN_SEVEN, CN_EIGHT,CN_NINE);radices = new Array("", CN_TEN, CN_HUNDRED, CN_THOUSAND);bigRadices = new Array("", CN_TEN_THOUSAND, CN_HUNDRED_MILLION);decimals = new Array(CN_TEN_CENT, CN_CENT);// Start processing:outputCharacters = "";// Process integral part if it is larger than 0:if (Number(integral) 0) { zeroCount = 0; for (i = 0; i integral.length; i++) { p = integral.length - i - 1; d = integral.substr(i, 1); quotient = p / 4; modulus = p % 4; if (d == "0") { zeroCount++; else { if (zeroCount 0) outputCharacters += digits[0]; zeroCount = 0; outputCharacters += digits[Number(d)] + radices[modulus]; if (modulus == 0 && zeroCount 4) { outputCharacters += bigRadices[quotient]; outputCharacters += CN_DOLLAR;// Process decimal part if there is:if (decimal != "") { for (i = 0; i decimal.length; i++) { d = decimal.substr(i, 1); if (d != "0") { outputCharacters += digits[Number(d)] + decimals[i];// Confirm and return the final output string:if (outputCharacters == "") { outputCharacters = CN_ZERO + CN_DOLLAR;if (decimal == "") { outputCharacters += CN_INTEGER;//outputCharacters = CN_SYMBOL + outputCharacters;outputCharacters = outputCharacters;return outputCharacters;var stmp = "";function nst_convert(t) if(t.html' target='_blank'>value==stmp) return;//如果等于上次輸入則返回 var ms = t.value.replace(/[^/d/.]/g,"").replace(/(/./d{2}).+$/,"$1").replace(/^0+([1-9])/,"$1").replace(/^0+$/,"0"); //replace(/[^/d/.]/g,"")去掉輸入當中不是數字和.的字符 //replace(/(/./d{2}).+$/,"$1") //匹配從字符開始的第一個.后面的所有字符,由于沒有使用g標記, //所以只匹配開始第一次 然后用小數點和后兩位進行替換以確定數值最后的格式正確 高. //replace(/^0+([1-9])/,"$1") 匹配以多個0開頭的數值替換為去掉0后的數值做為數字的第一位 也是匹配開始的一次. //replace(/^0+$/,"0") 匹配以0開始和結束的多個0為一個0 也就是0000000 輸入- 轉換成一個0 //以下確定輸入的為過濾后的合法數字 //alert(ms); var txt = ms.split("."); //alert(txt[0]); //如果ms值不小數點存在則txt[0]=小數點前的值否則等于ms //regexp://d{4}(,|$)/ 匹配四位數字和,的集合或者四位數字和字符結尾的集合 while(//d{4}(,|$)/.test(txt[0]))//如果為txt[0]=4123 txt[0] = txt[0].replace(/(/d)(/d{3}(,|$))/,"$1,$2"); //txt[0].replace(/(/d)(/d{3}(,|$))/,"$1,$2")是將txt[0]進行替換后再賦給它 //regexp:/(/d)(/d{3}(,|$))/ 將四個數字份為兩組第一個數字為第一位,后三位和其他結尾為每二位 //并替換成 第一位,第二位 注意 ,的使用很好. 也就是將4123先替換成4,123 //由于此表達式默認采用貪婪匹配所以從數值后向前匹配再通過循環進行再匹配替換從而可以將 //12345678分成你想要的123,456,78 彩用(,|$)很精典,因為它略去了第二次匹配時的,問題 t.value = stmp = txt[0]+(txt.length 1 "."+txt[1]:""); //最終賦值到輸入框中 //如果有小數點則加上并購成最終數字否則顯示替換后的txt[0] bbb.value = convertCurrency(ms-0); //將ms轉換為數字送到number2num1去轉換}以上所述就是本文的全部內容了,希望大家能夠喜歡。PHP教程

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
久久成人在线视频| 国产精品r级在线| 亚洲成人在线视频播放| 欧美性生活大片免费观看网址| 亚洲精品之草原avav久久| 亚洲精品中文字幕女同| 欧美高清videos高潮hd| 揄拍成人国产精品视频| 国产精品视频最多的网站| 精品久久久久久久大神国产| 97视频在线观看免费高清完整版在线观看| 久久手机精品视频| 高清日韩电视剧大全免费播放在线观看| 色婷婷**av毛片一区| 中国china体内裑精亚洲片| 亚洲精品视频久久| 97超级碰碰碰久久久| 欧美亚洲国产另类| 成人综合网网址| 亚洲美女av在线| 国产原创欧美精品| 国产精品自拍偷拍| 国产欧美一区二区三区视频| 91av视频在线免费观看| 欧美在线视频在线播放完整版免费观看| 国内精品久久久久久久| 日韩av观看网址| 久久国产精品99国产精| 久久夜色精品国产欧美乱| 日韩激情av在线免费观看| 欧美激情成人在线视频| 中文字幕在线国产精品| 亚洲999一在线观看www| 91亚洲精品在线观看| 97在线免费视频| 中文字幕日本欧美| 欧美日韩免费在线观看| 中文字幕亚洲无线码在线一区| 亚洲精品大尺度| 成人黄色在线播放| 亚洲一区亚洲二区| 精品国产成人在线| 91国产中文字幕| 欧美精品在线免费播放| 亚洲欧美日韩在线一区| 日韩国产高清视频在线| 亚洲精品福利在线观看| 国产中文字幕日韩| 日韩小视频在线| 色悠悠久久久久| 国产z一区二区三区| 欧美午夜性色大片在线观看| 亚洲精品美女在线观看| 国产高清视频一区三区| www.日本久久久久com.| 精品久久久久久国产| 亚洲成人免费在线视频| 欧美肥臀大乳一区二区免费视频| 亚洲欧洲一区二区三区在线观看| 国产精品亚洲第一区| 欧美激情一级欧美精品| 亚洲精品suv精品一区二区| 最近2019中文免费高清视频观看www99| 国产精品免费看久久久香蕉| 国产又爽又黄的激情精品视频| 国产精品三级久久久久久电影| 亚洲人成绝费网站色www| 国产欧美一区二区白浆黑人| 日韩欧美国产免费播放| 国产精品偷伦视频免费观看国产| 亚洲欧美在线播放| 国产欧美日韩免费看aⅴ视频| 国产美女精品视频免费观看| 亚洲人成网站在线播| 欧美日韩视频在线| 欧美成人sm免费视频| 国产成人啪精品视频免费网| 九九九久久国产免费| 精品福利视频导航| www.欧美精品| 亚洲亚裔videos黑人hd| 久久综合伊人77777尤物| 成人黄色免费在线观看| 欧美视频免费在线| 韩日精品中文字幕| 91精品视频免费| 欧美与欧洲交xxxx免费观看| 亚洲国产美女精品久久久久∴| 久久综合88中文色鬼| 亚洲国产成人91精品| 亚洲欧洲中文天堂| 乱亲女秽乱长久久久| 韩国v欧美v日本v亚洲| 国产精品久久久久久久久久久新郎| 韩国三级日本三级少妇99| 亚洲伊人久久大香线蕉av| 欧美俄罗斯乱妇| 日韩av免费看| 国产亚洲人成网站在线观看| 亚洲va码欧洲m码| 中文字幕精品一区久久久久| 久久男人的天堂| 成人信息集中地欧美| 亚洲性av网站| 97国产一区二区精品久久呦| 亚洲激情国产精品| 欧美另类在线播放| 欧美有码在线视频| 亚洲男女性事视频| 久久久久久香蕉网| 91在线直播亚洲| 日本国产高清不卡| 欧美日韩激情视频8区| 亚洲成人av片在线观看| 亚洲欧洲中文天堂| 久久久成人的性感天堂| 成人在线小视频| 色系列之999| 欧美丰满片xxx777| 日韩免费观看在线观看| 亚洲午夜未满十八勿入免费观看全集| 日韩欧美视频一区二区三区| 国内成人精品视频| 91网站在线免费观看| 欧美日韩在线视频一区| 日韩动漫免费观看电视剧高清| 欧美精品精品精品精品免费| 精品久久久999| 欧美成人免费一级人片100| 疯狂做受xxxx高潮欧美日本| 日本不卡免费高清视频| 97不卡在线视频| 日韩av中文字幕在线免费观看| 亚洲风情亚aⅴ在线发布| 最好看的2019年中文视频| 黄色精品在线看| 91亚洲精品在线观看| 亚洲国产小视频在线观看| 国产精品男人爽免费视频1| 91精品视频在线播放| 欧日韩不卡在线视频| 午夜精品一区二区三区在线视频| 亚洲精品日韩久久久| 美乳少妇欧美精品| 在线播放国产一区中文字幕剧情欧美| 精品久久久香蕉免费精品视频| 国产精品一区二区三区成人| 国产精品成人aaaaa网站| 伊人久久免费视频| 欧美精品www在线观看| 51久久精品夜色国产麻豆| 国产视频丨精品|在线观看| 亚洲男人天堂手机在线| 麻豆乱码国产一区二区三区| 国产成人精品午夜| 欧美自拍视频在线观看| 91精品视频播放| 97在线视频免费播放| 欧美做爰性生交视频| 亚洲欧美日韩精品久久亚洲区| 成人国产精品av| 亚洲区免费影片| 久久久之久亚州精品露出| 亚洲精品av在线播放|