+ 复制到我的接口(请先登录,支持在线开发API)    预览接口发布效果    查看开发教程

接口说明:

PHP 金额转换为中文大写金额,如1200转成:叁万叁仟叁佰叁拾叁元

接口源代码PHP:


<?php


/**
 * 金额转换为中文大写金额接口 PHP接口源代码
 *
 * 最后修改:2024-10-12 17:14:02
 *
 * @author dogstar www.yesapi.cn
 *
 * 来源:https://open.yesapi.cn/apicode/8879.html
 */

function ($params, $di) {
    
$amount = $params['amount'];
    
$isround = true; // 是否四舍五入,默认是
    
$type = 0; // 补整类型,0:到角补整;1:到元补整
    
    
if (!is_numeric($amount)) {
        return 
"要转换的金额只能为数字!";
    }

    
$amount = sprintf("%.2f", $isround ? round($amount, 2) : $amount);

    if (
$amount == 0) {
        return 
"零元整";
    }

    if (
$amount < 0) {
        return 
"要转换的金额不能为负数!";
    }

    if (
strlen("$amount") > 12) { // 金额不能超过万亿,即12位
        
return "要转换的金额不能为万亿及更高金额!";
    }

    
$digital      = ['零', '壹', '贰', '叁', '肆', '伍', '陆', '柒', '捌', '玖']; // 预定义中文转换的数组
    
$position     = ['仟', '佰', '拾', '亿', '仟', '佰', '拾', '万', '仟', '佰', '拾', '元']; // 预定义单位转换的数组
    
$amountArray  = explode('.', "$amount"); // 将金额的数值字符串拆分成数组
    
$integerArr   = str_split($amountArray[0], 1); // 将整数位的数值字符串拆分成数组

    // 将整数部分替换成大写汉字
    
$result           = '';
    
$integerArrLength = count($integerArr);     // 整数位数组的长度
    
$positionLength   = count($position);         // 单位数组的长度
    
for ($i = 0; $i < $integerArrLength; $i++) {
        if (
$integerArr[$i] != 0) { // 如果数值不为0,则正常转换
            
$result = $result . $digital[$integerArr[$i]] . $position[$positionLength - $integerArrLength + $i];
        } else { 
// 如果数值为0, 且单位是亿,万,元这三个的时候,则直接显示单位
            
if (($positionLength - $integerArrLength + $i + 1) % 4 == 0) {
                
$result = $result . $position[$positionLength - $integerArrLength + $i];
            }
        }
    }

    
// 如果小数位也要转换
    
if ($type == 0) {
        
$decimalArray = str_split($amountArray[1], 1); // 将小数位的数值字符串拆分成数组
        
if ($decimalArray[0] != 0) { // 将角替换成大写汉字. 如果为0,则不替换
            
$result = $result . $digital[$decimalArray[0]] . '角';
        }
        if (
$decimalArray[1] != 0) { // 将分替换成大写汉字. 如果为0,则不替换
            
$result = $result . $digital[$decimalArray[1]] . '分';
        }
    } else {
        
$result = $result . '整';
    }
    return 
$result;

}
在线运行   


回到顶部 ↑