數字轉為漢字金額的PHP函數
<?php /**
- 數字轉換為中文
- @param string|integer|float $num 目標數字
- @param integer $mode 模式[true:金額(默認),false:普通數字表示]
- @param boolean $sim 使用小寫(默認)
- @return string
*/
function number2chinese($num,$mode = true,$sim = true){
if(!is_numeric($num)) return '含有非數字非小數點字符!';
$char = $sim ? array('零','一','二','三','四','五','六','七','八','九')
: array('零','壹','貳','叁','肆','伍','陸','柒','捌','玖');
$unit = $sim ? array('','十','百','千','','萬','億','兆')
: array('','拾','佰','仟','','萬','億','兆');
$retval = $mode ? '元':'點';
//小數部分
if(strpos($num, '.')){
} //整數部分 $str = $mode ? strrev(intval($num)) : strrev($num); for($i = 0,$c = strlen($str);$i < $c;$i++) {list($num,$dec) = explode('.', $num); $dec = strval(round($dec,2)); if($mode){ $retval .= "{$char[$dec['0']]}角{$char[$dec['1']]}分"; }else{ for($i = 0,$c = strlen($dec);$i < $c;$i++) { $retval .= $char[$dec[$i]]; } }
} $retval = join('',array_reverse($out)) . $retval; return $retval; } //實例調用===================================================== $num = '0123648867.789'; echo $num,'<br>'; //普通數字的漢字表示 echo '普通:',number2chinese($num,false),''; echo '<br>'; //金額漢字表示 echo '金額(簡體):',number2chinese($num,true),''; echo '<br>'; echo '金額(繁體):',number2chinese($num,true,false);</pre>$out[$i] = $char[$str[$i]]; if($mode){ $out[$i] .= $str[$i] != '0'? $unit[$i%4] : ''; if($i>1 and $str[$i]+$str[$i-1] == 0){ $out[$i] = ''; } if($i%4 == 0){ $out[$i] .= $unit[4+floor($i/4)]; } }
本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!