PHP实现数字金额转中文金额
admin
2023-06-22 17:01:32
0

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

 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(preg_replace(['/零{2,}/u', '/零万/', '/零元/', '/零亿/'], ['零', '万', '元', '亿'], $ch_str), '零');
        if (preg_match('/(分|角)/', $format_str) === 0) {
            $format_str.='整';
        }
        return $format_str;
    }


相关内容

热门资讯

凤凰晚报丨美国牡蛎养殖场,走出... 今日人物【美国牡蛎养殖场,走出一位特朗普“平替”】2026年5月,在美国缅因州波特兰举行的一场州民主...
胡锡进:记者暗访被打,我有这样... 一名女记者暗访助孕实验室遭粗暴对待,被拖拽骨折。警方已对这起故意伤害刑事立案调查。支持记协对该记者的...
福州一立体停车场闲置长草?当地... 澎湃新闻记者 王选辉在福建省福州市仓山区的金山文体中心旁,有一座立体停车库。近日有周边群众向澎湃新闻...
《微博AI内容生态报告》:金橙... 2026年5月28日,《微博AI内容生态报告》(以下简称“报告”)正式发布。本报告从微博平台视角出发...
把超级AI助理“戴”进日常 讯... (澳门,2026年5月28日)当下,人工智能正以全新软硬件形态重塑人机交互方式。5月28日,科大讯飞...
2026年演唱会拍清舞台手机推... 对于演唱会爱好者而言,最令人沮丧的莫过于花费重金抢到门票,却因为座位偏远,手机长焦无力,拍出的舞台画...
联通+联想携手 首款AI+eS... 2026年5月28日,中国联通与联想集团联合举办拯救者Y70新一代“AI+eSIM”游戏手机战略合作...
国家大基金领投DeepSeek... DeepSeek的模型迭代需要持续投入大规模训练算力,充足资金是支撑这一长周期投入的重要来源 文|《...
“武器系统成熟前不准造”,美国... 【文/观察者网 山猫】尽管最近传出了多个关于“特朗普”级战列舰项目似乎确实要开始着手实施的迹象,包括...
90后小伙徒步重走长征路,当事... “你相信人可以重生吗?肉体不可以,但我相信精神可以。”来自新疆的90后小伙王成于2025年10月10...