/** |
* 人民币数字转中文币制 |
* @param string $data 待转换的数字 |
* @return string 返回转换后的中文数字 |
*/ |
function numberTocncap( $data ){ |
$capnum = array ( "零" , "壹" , "贰" , "叁" , "肆" , "伍" , "陆" , "柒" , "捌" , "玖" ); |
$capdigit = array ( "" , "拾" , "佰" , "仟" ); |
$subdata = explode ( "." , $data ); |
$yuan = $subdata [0]; |
$j = 0; |
$nonzero = 0; |
for ( $i =0; $i < strlen ( $subdata [0]); $i ++ ){ |
if ( $i ==0 ){ //确定个位 |
if ( $subdata [1]){ |
$cncap = ( substr ( $subdata [0],-1,1)!=0) ? "元" : "元零" ; |
} else { |
$cncap = "元" ; |
} |
} |
if ( $i ==4 ){ //确定万位 |
$j = 0; |
$nonzero = 0; |
$cncap = "万" . $cncap ; |
} |
if ( $i ==8){ //确定亿位 |
$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 ++; |
} |
if ( $subdata [1]){ |
$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 . "整" ; |
$cncap = preg_replace( "/(零)+/" , "\\1" , $cncap ); //合并连续“零” |
return $cncap ; |
} |