php数字转中文

function number2Chinese($num, $m = 1) {
    switch($m) {
        case 0:
            $CNum = array(
                array('零','壹','贰','叁','肆','伍','陆','柒','捌','玖'),
                array('','拾','佰','仟'),
                array('','萬','億','萬億')
            );
        break;
        default:
            $CNum = array(
                array('零','一','二','三','四','五','六','七','八','九'),
                array('','十','百','千'),
                array('','万','亿','万亿')
            );
        break;
    }

    if (!is_numeric($num)) {
        return false;
    }

    $flt = '';
    if (is_integer($num)) {
        $num = strval($num);
    }else if(is_numeric($num)){
        $num = strval($num);
        $rs = explode('.',$num,2);
        $num = $rs[0];
        $flt = $rs[1];
    }

    $len = strlen($num);
    $num = strrev($num);
    $chinese = '';
    
    for($i = 0,$k=0;$i < $len; $i+=4,$k++){
        $tmp_str = '';
        $str = strrev(substr($num , $i,4));
        $str = str_pad($str,4,'0',STR_PAD_LEFT);
        for ($j = 0; $j < 4; $j++) { 
            if($str{$j} !== '0'){
                $tmp_str .= $CNum[0][$str{$j}] . $CNum[1][4-1-$j];
            }
        }
        $tmp_str .= $CNum[2][$k];
        $chinese = $tmp_str . $chinese;
        unset($str);
    }
    if($flt !== ''){
        $str = '';
        for ($i=0; $i < strlen($flt); $i++) { 
            $str .= $CNum[0][$flt{$i}];
        }
        $chinese .= "点{$str}";
    }
    return $chinese;
}

$str = number2Chinese(123458656.789);
var_dump($str);

运行结果

string(63) "一亿二千三百四十五万八千六百五十六点七八九"

转载于:https://www.cnblogs.com/foolishnoob/p/5744570.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值