Laravel  
laravel
文档
数据库
架构
入门
php技术
    
Laravelphp
laravel / php / java / vue / mysql / linux / python / javascript / html / css / c++ / c#

PHP人民币金额数目字转中文大写的函数

作者:世界哪有真情   发布日期:2024-07-25   浏览:928

以下是一个将人民币金额数字转换为中文大写的PHP函数:

function numberToChinese($number) {
    $chineseNumber = array('零', '壹', '贰', '叁', '肆', '伍', '陆', '柒', '捌', '玖');
    $chineseUnit = array('拾', '佰', '仟', '万', '亿');
    $chineseDecimal = array('角', '分');

    $integer = floor($number);
    $decimal = round(($number - $integer) * 100);

    $integerStr = strval($integer);
    $integerLen = strlen($integerStr);

    $chineseStr = '';
    $zeroCount = 0;
    $isZero = false;

    for ($i = 0; $i < $integerLen; $i++) {
        $digit = intval($integerStr[$i]);
        $pos = $integerLen - $i - 1;
        $unit = '';

        if ($digit == 0) {
            $isZero = true;
            $zeroCount++;
        } else {
            if ($isZero) {
                $chineseStr .= $chineseNumber[0];
                $isZero = false;
            }

            $unit = $chineseUnit[$pos % 4];

            if ($pos >= 4 && $integerStr[$i - 3] == 0 && $integerStr[$i - 2] == 0 && $integerStr[$i - 1] == 0) {
                $unit = $chineseUnit[3];
            }

            $chineseStr .= $chineseNumber[$digit] . $unit;
        }

        if ($pos % 4 == 0 && $zeroCount < 4) {
            $chineseStr .= $chineseUnit[3];
            $zeroCount = 0;
        }
    }

    if ($integerLen > 1 && substr($integerStr, -2, 2) == '00') {
        $chineseStr = substr($chineseStr, 0, -6);
    }

    if ($decimal > 0) {
        $decimalStr = strval($decimal);
        $decimalLen = strlen($decimalStr);

        for ($i = 0; $i < $decimalLen; $i++) {
            $digit = intval($decimalStr[$i]);

            if ($digit > 0) {
                $chineseStr .= $chineseNumber[$digit] . $chineseDecimal[$i];
            }
        }
    } else {
        $chineseStr .= '整';
    }

    return $chineseStr;
}

// 示例用法
$amount = 1234567.89;
$chineseAmount = numberToChinese($amount);
echo $chineseAmount; // 壹佰贰拾叁万肆仟伍佰陆拾柒元捌角玖分

该函数将人民币金额数字转换为中文大写形式。示例用法中的$amount为要转换的金额,$chineseAmount为转换后的中文大写金额。

上一篇:PHP 中文字符串截取无乱码的步骤以及php汉字截取函数_preg_split()

下一篇:php怎么发送amf消息

大家都在看

php session用法

php 定义常量

phpisset函数

php后端

php爬虫框架

php读取csv文件

php 三元表达式

php文件加密

php 拆分字符串

php pcntl

Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3

Laravel 中文站