This article mainly introduces the PHP to convert the digital amount to the Chinese capital amount function, the interest friend's reference, hoped to be helpful to everybody.
Code 1:php Arabic to Chinese yuan capitalized, with detailed comments
/*** A function that converts a numeric amount to a Chinese capital amount *string Int $num the lowercase or lowercase string to convert *return uppercase * Decimal places are two-bit **/function NUM_TO_RMB ($num) {$c 1 = "0 One and three Woolu seven BA Nine" ; $c 2 = "split-angle element pick Bai thousand thousand million"; Accurate to the point after the not, so only two decimal digits $num = Round ($num, 2); Converts a number to an integer $num = $num * 100; if (strlen ($num) >) {return "amount is too large, please check"; } $i = 0; $c = ""; while (1) {if ($i = = 0) {//Gets the last digit $n = substr ($num, strlen ($num)-1, 1); } else {$n = $num% 10; }//each time the last digit is converted to Chinese $p 1 = substr ($c 1, 3 * $n, 3); $p 2 = substr ($c 2, 3 * $i, 3); if ($n! = ' 0 ' | | ($n = = ' 0 ' && ($p 2 = = ' billion ' | | $p 2 = = ' million ' | | $p 2 = = ' Yuan '))) {$c = $p 1. $p 2. $c; } else {$c = $p 1. $c; } $i = $i + 1; Minus the last digit of the number $num = $num/10; $num = (int) $num; End Loop if ($num = = 0) {break; }} $j = 0; $slen = strlen ($c); while ($j < $slen) {//utf8 A kanji of 3 characters $m = substr ($c, $j, 6); Deal with a lot of 0 of the number of cases, each cycle to remove a kanji "0" if ($m = = ' 0 Yuan ' | | $m = = ' 0 ' | | $m = = ' 0 ' | | $m = = ' 00 ') {$left = substr ($ C, 0, $j); $right = substr ($c, $j + 3); $c = $left. $right; $j = $j-3; $slen = $slen-3; } $j = $j + 3; }//This is to remove similar 23.0 in the last "0" word if (substr ($c, strlen ($c)-3, 3) = = ' 0 ') {$c = substr ($c, 0, strlen ($c)-3); }//The kanji will be processed with an "integer" If (Empty ($c)) {return "0 yuan whole"; }else{return $c. "Whole"; }}echo NUM_TO_RMB (23000000.00); Three hundred thousand million whole
Code 2:php Arabic to Chinese capitalization amount
Arabic numerals to Chinese capital amount function Numtocnmoney ($num, $mode = True, $sim = True) {if (!is_numeric ($num)) return ' contains non-numeric non-decimal characters! '; $char = $sim? Array (' 0 ', ' one ', ' two ', ' three ', ' four ', ' five ', ' six ', ' seven ', ' eight ', ' nine '): Array (' 0 ', ' one ', ' II ', ' three ', ' the ', ' ' Wu ', ' Lu ', ' qi ', ' ba ', ' JIU '); $unit = $sim? Array (' ', ' ten ', ' hundred ', ' thousand ', ' ', ' million ', ' billion ', ' Mega '): Array (', ' Pick ', ' bai ', ' thousand ', ' ', ', ' Yi ', ' trillion '); $retval = $mode? ' Yuan ': ' Point '; Decimal part if (Strpos ($num, '. ')) {List ($num, $dec) = Explode ('. ', $num); $dec = Strval (Round ($dec, 2)); if ($mode) {$retval. = "{$char [$dec [' 0 ']} corner {$char [$dec [' 1 ']}"; }else{for ($i = 0, $c = strlen ($dec), $i < $c, $i + +) {$retval. = $char [$dec [$i]]; }}}//integer part $str = $mode? Strrev (Intval ($num)): Strrev ($num); for ($i = 0, $c = strlen ($str), $i < $c, $i + +) {$out [$i] = $char [$STR [$i]]; if ($mode) {$out [$i]. = $STR [$i]! = ' 0 '? $unit [$i%4]: '; if ($i >1 and $str [$i]+ $str [$i-1] = = 0) {$out [$i] = '; if ($i%4 = = 0) {$out [$i]. = $unit [4+floor ($i/4)]; } }} $retval = Join (', Array_reverse ($out)). $retval; return $retval;} Echo (Numtocnmoney (2.55). " <br> "), Echo (Numtocnmoney (2.55,1,0)." <br> "), Echo (Numtocnmoney (7965)." <br> "), Echo (Numtocnmoney (7965,1,0)." <br> "), Echo (Numtocnmoney (155555555.68)." <br> "), Echo (Numtocnmoney (155555555.68,1,0)." <br> "), Echo (Numtocnmoney (0.8888888)." <br> "), Echo (Numtocnmoney (0.8888888,1,0)." <br> "), Echo (Numtocnmoney (99999999999)." <br> "), Echo (Numtocnmoney (99999999999,1,0)." <br> ");
Summary: The above is the entire content of this article, I hope to be able to help you learn.