您现在的位置是: 网站首页> PHP PHP
PHP 实现阿拉伯数字金额转中文大写金额:详解与实用函数
杨二桃
2025-10-22
【PHP】
170人已围观
简介PHP 实现阿拉伯数字金额转中文大写金额:详解与实用函数
函数基本介绍
函数定义
/**
* 将阿拉伯数字金额转换为中文大写金额
* @param float $amount 金额(支持两位小数)
* @return string 中文大写金额
*/
function amountToChinese($amount) {
// 定义数字对应的中文
$cnNumbers = ['零', '壹', '贰', '叁', '肆', '伍', '陆', '柒', '捌', '玖'];
$cnUnits = ['', '拾', '佰', '仟', '万', '拾', '佰', '仟', '亿'];
$cnDecimals = ['角', '分'];
// 处理负数
if ($amount < 0) {
return '负' . amountToChinese(abs($amount));
}
// 拆分整数和小数部分
$amountStr = number_format($amount, 2, '.', '');
list($integerPart, $decimalPart) = explode('.', $amountStr);
$result = '';
// 处理整数部分
$integerLen = strlen($integerPart);
for ($i = 0; $i < $integerLen; $i++) {
$num = $integerPart[$i];
$unit = $cnUnits[$integerLen - $i - 1];
if ($num != '0') {
$result .= $cnNumbers[$num] . $unit;
} else {
// 处理连续的零(如 1001 → 壹仟零壹)
if ($i < $integerLen - 1 && $integerPart[$i + 1] != '0') {
$result .= $cnNumbers[$num];
}
}
}
if ($integerPart != '0') {
$result .= '元';
}
// 处理小数部分
$decimalStr = '';
for ($i = 0; $i < 2; $i++) {
$num = $decimalPart[$i];
if ($num != '0') {
$decimalStr .= $cnNumbers[$num] . $cnDecimals[$i];
}
}
$result .= $decimalStr ?: '整';
// 处理纯零的情况
if ($result == '') {
$result = $cnNumbers[0] . '元整';
}
return $result;
}
使用方法示例