PHP如何实现将数字金额轻松转成中文繁体大写
发表于:2025-01-22 作者:千家信息网编辑
千家信息网最后更新 2025年01月22日,PHP如何实现将数字金额轻松转成中文繁体大写,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。数字金额转中文繁体大写好吧,我
千家信息网最后更新 2025年01月22日PHP如何实现将数字金额轻松转成中文繁体大写
PHP如何实现将数字金额轻松转成中文繁体大写,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。
数字金额转中文繁体大写
好吧,我居然在写这个。
可以到这里测试。(https://sandbox.onlinephpfunctions.com/code/0cc068d3c89904e55d8aa9e55fdfa45eaab70c37)
数字金额转中文繁体大写:
if (!function_exists('rmb_capital')) { /** * 金额转中文大写 * * @param mixed $amount * @return string */ function rmb_capital($amount) { $capitalNumbers = [ '零', '壹', '贰', '叁', '肆', '伍', '陆', '柒', '捌', '玖', ]; $integerUnits = ['', '拾', '佰', '仟',]; $placeUnits = ['', '万', '亿', '兆',]; $decimalUnits = ['角', '分', '厘', '毫',]; $result = []; $arr = explode('.', $amount); $integer = trim($arr[0] ?? '', '-'); $decimal = $arr[1] ?? ''; if (!((int) $decimal)) { $decimal = ''; } // 转换整数部分 // 从个位开始 $integerNumbers = $integer ? array_reverse(str_split($integer)) : []; $last = null; foreach (array_chunk($integerNumbers, 4) as $chunkKey => $chunk) { if (!((int) implode('', $chunk))) { // 全是 0 则直接跳过 continue; } array_unshift($result, $placeUnits[$chunkKey]); foreach ($chunk as $key => $number) { // 去除重复 零,以及第一位的 零,类似:1002、110 if (!$number && (!$last || $key === 0)) { $last = $number; continue; } $last = $number; // 类似 1022,中间的 0 是不需要 佰 的 if ($number) { array_unshift($result, $integerUnits[$key]); } array_unshift($result, $capitalNumbers[$number]); } } if (!$result) { array_push($result, $capitalNumbers[0]); } array_push($result, '圆'); if (!$decimal) { array_push($result, '整'); } // 转换小数位 $decimalNumbers = $decimal ? str_split($decimal) : []; foreach ($decimalNumbers as $key => $number) { array_push($result, $capitalNumbers[$number]); array_push($result, $decimalUnits[$key]); } if (strpos((string) $amount, '-') === 0) { array_unshift($result, '负'); } return '人民币' . implode('', $result); }}
函数不对参数是否为数字值做验证
简单测试了一下:
:人民币零圆整dsfa:人民币零圆整0:人民币零圆整1:人民币壹圆整12:人民币壹拾贰圆整10:人民币壹拾圆整102:人民币壹佰零贰圆整110:人民币壹佰壹拾圆整1002:人民币壹仟零贰圆整1010:人民币壹仟零壹拾圆整1022:人民币壹仟零贰拾贰圆整100002:人民币壹拾万零贰圆整1020345:人民币壹佰零贰万零叁佰肆拾伍圆整100:人民币壹佰圆整10000:人民币壹万圆整-22342.432:人民币负贰万贰仟叁佰肆拾贰圆肆角叁分贰厘0.34:人民币零圆叁角肆分34.04:人民币叁拾肆圆零角肆分34532:人民币叁万肆仟伍佰叁拾贰圆整123456789:人民币壹亿贰仟叁佰肆拾伍万陆仟柒佰捌拾玖圆整
已改写为开源扩展包: rmb-capital(https://packagist.org/packages/chuoke/rmb-capital)
看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注行业资讯频道,感谢您对的支持。
人民
人民币
大写
数字
金额
中文
繁体
帮助
测试
不对
清楚
个位
伍佰
内容
函数
参数
对此
小数
小数位
整数
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
周鹏 上海盛大网络技术总监
爬虫自动抓取网页数据库
数据库资源举例
服务器单用户多窗口
网络安全夺旗赛电视剧
皓焱网络技术工作室
什么是数字电视双向网络技术
网络安全法定级备案
江阴互联网智能科技产品多少钱
软件开发代理协议
软件开发用什么数据库
软件开发测试好学习吗
服务器网络安全策略部署
龙港易迅网络技术有限公司
车品牌数据库下载
邮箱服务器拒收
网络技术公司策划方案
国家网络安全活动意义
数据库扩容业务不中断
苏宁软件开发干到多大
初中生软件开发和动漫哪个好学
移动网络如何关闭服务器
数据库的设计与应用
网络安全和网络文明传播
我的世界迷失在服务器里的玩家
计算机技术数据库参考文献
高考网络技术知识点
郓城县公安局网络安全
网页怎么跟数据库连接
计算机网络技术试验指导书