L o a d i n g . . .
主打一个C++
文章详情

php数字金额转中文大写文本

Posted on 2024-01-01 12:46:51 by 主打一个C++

//封装函数

function numberToChinese($num) {
    // 定义数字和单位数组
    $char = ['零', '壹', '贰', '叁', '肆', '伍', '陆', '柒', '捌', '玖'];
    $unit = ['', '拾', '佰', '仟', '万', '拾', '佰', '仟', '亿', '拾', '佰', '仟'];

    // 转换为字符串并反转
    $strNum = strrev((string)$num);
    $len = strlen($strNum);
    $result = '';

    for ($i = 0; $i < $len; $i++) {
        $index = (int)$strNum[$i];
        $result = $char[$index] . $unit[$i] . $result;
    }

    // 去除连续的零和多余的单位
    $result = preg_replace('/零(?=零|万|亿|$)/', '', $result);
    $result = preg_replace('/(拾|佰|仟)(?=零|万|亿|$)/', '零', $result);
    $result = preg_replace('/零{2,}/', '零', $result);
    $result = preg_replace('/零万/', '万', $result);
    $result = preg_replace('/零亿/', '亿', $result);

    // 特殊处理结果
    if (substr($result, 0, 1) == '零') $result = substr($result, 1);
    if (substr($result, -1) == '零') $result = substr($result, 0, -1);

    return $result;
}
//测试调用
echo numberToChinese(1234567890);


*转载请注明出处:原文链接:https://cpp.vin/page/112.html

作者近期文章
  • 随手笔记
  • 主打一个C++   2025-01-11 20:02:01
  • 都2000000025年了。还有不能随意访问guthub的,仔细看。在国内其实是可以正常访问的,gfw并没屏蔽。这里给出其中一个简单直接的方法稳定访问。1. 随便百度一个”dn
提示
×
确定
数据库执行: 8次 总耗时: 0.01s
页面加载耗时: 



wechat +447752296473
wechat cpp-blog