方法

    1. /**
    2. * 阿拉伯数字转中文数字
    3. *
    4. * @param $num
    5. *
    6. * @return string
    7. */
    8. public static function araNum2ChNum($num){
    9. $num = round((float)$num, 2) * 100;
    10. if($num == 0) return '零元整';
    11. $isInt = $num % 100 == 0;
    12. $ret = '';
    13. if($num < 0){
    14. $ret .= '负';
    15. $num = - $num;
    16. }
    17. $numStr = number_format($num, 0, '', '');
    18. $zh = ['零', '壹', '贰', '叁', '肆', '伍', '陆', '柒', '捌', '玖'];
    19. $suffix = ['分', '角', '元', '拾', '佰', '仟', '万', '拾', '佰', '仟', '亿', '拾', '佰', '仟', '万'];
    20. for($zeroNum = 0, $i = 0, $len = strlen($numStr); $i < $len; $i ++){
    21. $v = (int)$numStr[$i];
    22. $suffixIndex = $len - $i - 1;
    23. if($v == 0){
    24. if(2 == $suffixIndex || 6 == $suffixIndex || 11 == $suffixIndex){
    25. $ret .= $suffix[$suffixIndex];
    26. $zeroNum = 0;
    27. }else{
    28. $zeroNum ++;
    29. }
    30. }else{
    31. $zeroNum && ($ret .= '零') && $zeroNum == 0;
    32. $ret .= ($zh[$v] . $suffix[$suffixIndex]);
    33. }
    34. }
    35. $isInt && $ret .= '整';
    36. return $ret;
    37. }

    用法

    1. $a = '1234.00';
    2. p(fun::araNum2ChNum($a));