本文共 2212 字,大约阅读时间需要 7 分钟。
直接上代码:
= 1000000000 || $num < 0) { return '';}$NUMBER_CH = ['零', '一', '二', '三', '四', '五', '六', '七', '八', '九', '十'];$COL_CH = ['', '十', '百', '千', '万', '十', '百', '千', '亿']; $result = '';$numstr = strval($num);for ($j = 0; $j < strlen($numstr); $j++) { if (intval($numstr[$j]) > 0) { $result .= $NUMBER_CH[intval($numstr[$j])];$result .= $COL_CH[strlen($numstr) - $j - 1];} elseif ((strlen($numstr) - $j == 5) || (strlen($numstr) - $j == 9)) { if (strrpos($result, $COL_CH[8]) != strlen($result) - strlen($COL_CH[8])) { $result .= $COL_CH[strlen($numstr) - $j - 1];}} elseif (strrpos($result, $NUMBER_CH[0]) != strlen($result) - strlen($NUMBER_CH[0])) { if (!empty($numstr[$j + 1])) { $result .= $NUMBER_CH[0];}}}return $result;}echo getNumberCh(12345678);//这里的数值就是你要转换的值
上面代码输出就是:一千二百三十四万五千六百七十八
如果你想输出类似发票的大写文字,你只需替换这里的文字即可,下面是替换后的代码:
$NUMBER_CH = ['零', '壹', '贰', '叁', '肆', '伍', '陆', '柒', '捌', '玖', '拾'];$COL_CH = ['', '拾', '佰', '仟', '萬', '拾', '佰', '仟', '亿'];
1){ if($dec['0']!='0' && $dec['1']!='0' && $dec['1']!=null){ $retval .= "{ $char[$dec['0']]}角{ $char[$dec['1']]}分";}elseif($dec['0']!='0' && $dec['1']=='0'){ $retval .= "{ $char[$dec['0']]}角";}elseif($dec['0']=='0' && $dec['1']!='0' && $dec['1']!=null){ $retval .= "{ $char[$dec['1']]}分";}}else{ $retval .= "{ $char[$dec['0']]}角";}}else{ for($i = 0,$c = strlen($dec);$i < $c;$i++) { $retval .= $char[$dec[$i]];}}}}//整数部分$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;}$num = '12345678901234.050';//普通数字的汉字表示echo '普通:',number2chinese($num,false),'';echo ''; //金额汉字表示echo '金额(简体):',number2chinese($num,true),'';echo '';echo '金额(繁体):',number2chinese($num,true,false);?>
我在第二种方法上做了一些修正。之前输出是这样的,比如:如果数字是1.02,正常输出应该是壹元二分,但是程序却输出壹元贰角分,所以就有点问题了。现在修正后就正常了。
转载地址:http://dsyen.baihongyu.com/