PHP实现人民币金额转换成大写中文(附完整源码)

时间:2024-12-10 17:26:54
<?php /** * 人民币金额转换成大写中文 * @param float $number 要转换的金额数字 * @return string 转换后的大写中文字符串 */ function number_to_chinese($number) { $fraction = ['角', '分']; $digit = ['零', '壹', '贰', '叁', '肆', '伍', '陆', '柒', '捌', '玖']; $unit = [['元', '万', '亿'], ['', '拾', '佰', '仟']];$ret = ''; if ($number == 0) { return '零元'; }$numbers = explode('.', $number); if (count($numbers) > 1) { $integer_part = $numbers[0]; $fraction_part = $numbers[1]; } else { $integer_part = $number; $fraction_part = ''; }// 转换整数部分 for ($i = 0; $i < strlen($integer_part); $i++) { $p = strlen($integer_part) - $i - 1; $temp = $integer_part[$i]; if ($temp == '0') { if ($p == 0 || (0 < $p && $p % 4 == 0)) { $ret .= $digit[$temp]; } } else { $ret .= $digit[$temp] . $unit[0][floor($p / 4)] . ($p % 4 < 3 ? $unit[1][$p % 4] : ''); } }// 添加小数部分 if ($fraction_part != '') { $ret .= '点'; for ($i = 0; $i < strlen($fraction_part); $i++) { $ret .= $digit[$fraction_part[$i]]; } }return $ret; }// 使用示例 $number = 12345.67; echo number_to_chinese($number); // 输出: 壹万二千三百肆拾伍元陆角柒分