以下是一个将人民币金额数字转换为中文大写的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消息
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站