PHP实现数字金额转中文金额

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHP实现数字金额转中文金额相关的知识,希望对你有一定的参考价值。

 解决发票系统中,发票单上需要填写中文金额的问题:

 function ToChineseNum($num) {
        $zh_num = [‘零‘, ‘壹‘, ‘贰‘, ‘叁‘, ‘肆‘, ‘伍‘, ‘陆‘, ‘柒‘, ‘捌‘, ‘玖‘];
        $zh_unit = [‘分‘, ‘角‘, ‘元‘, ‘拾‘, ‘佰‘, ‘仟‘, ‘万‘, ‘拾‘, ‘佰‘, ‘仟‘, ‘亿‘, ‘拾‘, ‘佰‘, ‘仟‘];
        if (!is_numeric(str_replace(‘,‘, ‘‘, $num))) {
            return $num;
        }
        $number = strrev(round(str_replace(‘,‘, ‘‘, $num), 2) * 100);
        $length = strlen($number);
        $ch_str = ‘‘;
        for ($length; $length > 0; $length--) {
            $index = $length - 1;
            if ($number[$index] == ‘0‘ && !in_array($zh_unit[$index], [‘万‘, ‘元‘, ‘亿‘])) {
                $ch_str.=$zh_num[$number[$index]];
            } elseif ($number[$index] == ‘0‘ && in_array($zh_unit[$index], [‘万‘, ‘元‘, ‘亿‘])) {
                $ch_str.= $zh_unit[$index];
            } else {
                $ch_str.=$zh_num[$number[$index]] . $zh_unit[$index];
            }
        }
        $format_str = trim(str_replace([‘零零‘, ‘零万‘, ‘零元‘, ‘零亿‘], [‘零‘, ‘万‘, ‘元‘, ‘亿‘], $ch_str), ‘零‘);
        if (preg_match(‘/(分|角)/‘, $format_str) === 0) {
            $format_str.=‘整‘;
        }
        return $format_str;
    }


以上是关于PHP实现数字金额转中文金额的主要内容,如果未能解决你的问题,请参考以下文章

PHP 数字金额转换成中文大写金额的函数 数字转中文

转一个财务方面常用到的数字金额转成汉字大写金额 php类

Sql Server 数字金额转中文金额 函数

js怎么把数字金额转换成中文大写金额

PHP数字金额转换大写金额

小写数字自动转换成大写人民币金额两张表怎么在桌面找不同吗?