PHP如何实现价格数字转换为大写字母表示?

更新于
2026-09-24 21:44:19
1阅读来源:SEO基础
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计462个文字,预计阅读时间需要2分钟。

PHP如何实现价格数字转换为大写字母表示?

phpfunction currencyToChinese($data) { $data=str_replace(',', '', $data); if ($data==='') { return ''; } $prefix=''; $cncap=''; if ($data[0]=='-') { $prefix='负'; $data=substr($data, 1); } $capnum=array('零', '壹', '贰', '叁', '肆', '伍', '陆', '柒', '捌', '玖'); $unit=array('', '拾', '佰', '仟'); $result=''; $len=strlen($data); for ($i=0; $i < $len; $i++) { $num=$data[$i]; $result .=$capnum[$num] . $unit[$len - $i - 1]; } $result=str_replace('壹拾', '拾', $result); $result=str_replace('零拾', '零', $result); $result=str_replace('零佰', '零', $result); $result=str_replace('零仟', '零', $result); $result=str_replace('零零', '零', $result); $result=$prefix . $result; return $result;}

PHP如何实现价格数字转换为大写字母表示?

currencyToChinese

function currencyToChinese($data) { $data = str_replace(',', '', $data); if ($data == '') { return ''; } $prefix = ''; $cncap = ''; if ($data < 0) { $prefix .= '负'; $data = substr($data, 1, strlen($data) - 1); } $capnum = array("零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖"); $capdigit = array("", "拾", "佰", "仟"); $subdata = explode(".", $data); if (!isset($subdata[1])) { $subdata[1] = 0; } if (intval($subdata[0]) == 0 && intval($subdata[1]) == 0) { return $prefix . "零元整"; } $yuan = $subdata[0]; $j = 0; $nonzero = 0; for ($i = 0; $i < strlen($subdata[0]); $i++) { if (0 == $i) { //确定个位 if (intval($subdata[1]) != 0) { if (substr($subdata[0], -1, 1) == 0) { $cncap .= "元零"; } else { $cncap .= "元"; } } else { if (intval($subdata[0]) != 0) { $cncap = "元"; } } } if (4 == $i) { $j = 0; $nonzero = 0; $cncap = "万" . $cncap; } //确定万位 if (8 == $i) { $j = 0; $nonzero=0; $cncap="亿" . $cncap; } //确定亿位 $numb = substr($yuan, -1, 1); //截取尾数 $cncap = ($numb) ? $capnum[$numb] . $capdigit[$j] . $cncap : (($nonzero)?"零" . $cncap : $cncap); $nonzero = ($numb) ? 1 : $nonzero; $yuan = substr($yuan, 0, strlen($yuan)-1); //截去尾数 $j++; } $chiao = ''; $cent = ''; if (intval($subdata[1]) != 0) { $chiao = (substr($subdata[1], 0, 1)) ? $capnum[substr($subdata[1], 0, 1)] . "角" : "零"; $cent = (substr($subdata[1], 1, 1)) ? $capnum[substr($subdata[1], 1, 1)] . "分" : "零分"; } $cncap .= $chiao.$cent; if (substr($subdata[1], -1, 1) === '0') { $cncap .= "整"; } $cncap = preg_replace("/(零)+/", "\1", $cncap); //合并连续“零” if (intval($subdata[0]) == 0) { $cncap = preg_replace("/(元零)+/", "", $cncap); $cncap = preg_replace("/(元)+/", "", $cncap); } if (intval($subdata[1]) == 0 || substr($subdata[1], -1, 1) === '0') { $cncap = preg_replace("/(零分)+/", "", $cncap); } return $prefix . $cncap; }

本文共计462个文字,预计阅读时间需要2分钟。

PHP如何实现价格数字转换为大写字母表示?

phpfunction currencyToChinese($data) { $data=str_replace(',', '', $data); if ($data==='') { return ''; } $prefix=''; $cncap=''; if ($data[0]=='-') { $prefix='负'; $data=substr($data, 1); } $capnum=array('零', '壹', '贰', '叁', '肆', '伍', '陆', '柒', '捌', '玖'); $unit=array('', '拾', '佰', '仟'); $result=''; $len=strlen($data); for ($i=0; $i < $len; $i++) { $num=$data[$i]; $result .=$capnum[$num] . $unit[$len - $i - 1]; } $result=str_replace('壹拾', '拾', $result); $result=str_replace('零拾', '零', $result); $result=str_replace('零佰', '零', $result); $result=str_replace('零仟', '零', $result); $result=str_replace('零零', '零', $result); $result=$prefix . $result; return $result;}

PHP如何实现价格数字转换为大写字母表示?

currencyToChinese

function currencyToChinese($data) { $data = str_replace(',', '', $data); if ($data == '') { return ''; } $prefix = ''; $cncap = ''; if ($data < 0) { $prefix .= '负'; $data = substr($data, 1, strlen($data) - 1); } $capnum = array("零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖"); $capdigit = array("", "拾", "佰", "仟"); $subdata = explode(".", $data); if (!isset($subdata[1])) { $subdata[1] = 0; } if (intval($subdata[0]) == 0 && intval($subdata[1]) == 0) { return $prefix . "零元整"; } $yuan = $subdata[0]; $j = 0; $nonzero = 0; for ($i = 0; $i < strlen($subdata[0]); $i++) { if (0 == $i) { //确定个位 if (intval($subdata[1]) != 0) { if (substr($subdata[0], -1, 1) == 0) { $cncap .= "元零"; } else { $cncap .= "元"; } } else { if (intval($subdata[0]) != 0) { $cncap = "元"; } } } if (4 == $i) { $j = 0; $nonzero = 0; $cncap = "万" . $cncap; } //确定万位 if (8 == $i) { $j = 0; $nonzero=0; $cncap="亿" . $cncap; } //确定亿位 $numb = substr($yuan, -1, 1); //截取尾数 $cncap = ($numb) ? $capnum[$numb] . $capdigit[$j] . $cncap : (($nonzero)?"零" . $cncap : $cncap); $nonzero = ($numb) ? 1 : $nonzero; $yuan = substr($yuan, 0, strlen($yuan)-1); //截去尾数 $j++; } $chiao = ''; $cent = ''; if (intval($subdata[1]) != 0) { $chiao = (substr($subdata[1], 0, 1)) ? $capnum[substr($subdata[1], 0, 1)] . "角" : "零"; $cent = (substr($subdata[1], 1, 1)) ? $capnum[substr($subdata[1], 1, 1)] . "分" : "零分"; } $cncap .= $chiao.$cent; if (substr($subdata[1], -1, 1) === '0') { $cncap .= "整"; } $cncap = preg_replace("/(零)+/", "\1", $cncap); //合并连续“零” if (intval($subdata[0]) == 0) { $cncap = preg_replace("/(元零)+/", "", $cncap); $cncap = preg_replace("/(元)+/", "", $cncap); } if (intval($subdata[1]) == 0 || substr($subdata[1], -1, 1) === '0') { $cncap = preg_replace("/(零分)+/", "", $cncap); } return $prefix . $cncap; }