方法
/**
* 阿拉伯数字转中文数字
*
* @param $num
*
* @return string
*/
public static function araNum2ChNum($num){
$num = round((float)$num, 2) * 100;
if($num == 0) return '零元整';
$isInt = $num % 100 == 0;
$ret = '';
if($num < 0){
$ret .= '负';
$num = - $num;
}
$numStr = number_format($num, 0, '', '');
$zh = ['零', '壹', '贰', '叁', '肆', '伍', '陆', '柒', '捌', '玖'];
$suffix = ['分', '角', '元', '拾', '佰', '仟', '万', '拾', '佰', '仟', '亿', '拾', '佰', '仟', '万'];
for($zeroNum = 0, $i = 0, $len = strlen($numStr); $i < $len; $i ++){
$v = (int)$numStr[$i];
$suffixIndex = $len - $i - 1;
if($v == 0){
if(2 == $suffixIndex || 6 == $suffixIndex || 11 == $suffixIndex){
$ret .= $suffix[$suffixIndex];
$zeroNum = 0;
}else{
$zeroNum ++;
}
}else{
$zeroNum && ($ret .= '零') && $zeroNum == 0;
$ret .= ($zh[$v] . $suffix[$suffixIndex]);
}
}
$isInt && $ret .= '整';
return $ret;
}
用法
$a = '1234.00';
p(fun::araNum2ChNum($a));