php阿拉伯数字转中文人民币大写
本文实例为大家分享了php阿拉伯数字转中文人民币大写的实现代码,供大家参考,具体代码如下
代码1:php阿拉伯数字转中文人民币大写,有详细的注释
/** *数字金额转换成中文大写金额的函数 *StringInt$num要转换的小写数字或小写字符串 *return大写字母 *小数位为两位 **/ functionnum_to_rmb($num){ $c1="零壹贰叁肆伍陆柒捌玖"; $c2="分角元拾佰仟万拾佰仟亿"; //精确到分后面就不要了,所以只留两个小数位 $num=round($num,2); //将数字转化为整数 $num=$num*100; if(strlen($num)>10){ return"金额太大,请检查"; } $i=0; $c=""; while(1){ if($i==0){ //获取最后一位数字 $n=substr($num,strlen($num)-1,1); }else{ $n=$num%10; } //每次将最后一位数字转化为中文 $p1=substr($c1,3*$n,3); $p2=substr($c2,3*$i,3); if($n!='0'||($n=='0'&&($p2=='亿'||$p2=='万'||$p2=='元'))){ $c=$p1.$p2.$c; }else{ $c=$p1.$c; } $i=$i+1; //去掉数字最后一位了 $num=$num/10; $num=(int)$num; //结束循环 if($num==0){ break; } } $j=0; $slen=strlen($c); while($j<$slen){ //utf8一个汉字相当3个字符 $m=substr($c,$j,6); //处理数字中很多0的情况,每次循环去掉一个汉字“零” if($m=='零元'||$m=='零万'||$m=='零亿'||$m=='零零'){ $left=substr($c,0,$j); $right=substr($c,$j+3); $c=$left.$right; $j=$j-3; $slen=$slen-3; } $j=$j+3; } //这个是为了去掉类似23.0中最后一个“零”字 if(substr($c,strlen($c)-3,3)=='零'){ $c=substr($c,0,strlen($c)-3); } //将处理的汉字加上“整” if(empty($c)){ return"零元整"; }else{ return$c."整"; } } echonum_to_rmb(23000000.00);//贰仟叁佰万元整
代码2:php阿拉伯数字转中文大写金额
//阿拉伯数字转中文大写金额 functionNumToCNMoney($num,$mode=true,$sim=true){ if(!is_numeric($num))return'含有非数字非小数点字符!'; $char=$sim?array('零','一','二','三','四','五','六','七','八','九') :array('零','壹','贰','叁','肆','伍','陆','柒','捌','玖'); $unit=$sim?array('','十','百','千','','万','亿','兆') :array('','拾','佰','仟','','萬','億','兆'); $retval=$mode?'元':'点'; //小数部分 if(strpos($num,'.')){ 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]]; } } } //整数部分 $str=$mode?strrev(intval($num)):strrev($num); for($i=0,$c=strlen($str);$i<$c;$i++){ $out[$i]=$char[$str[$i]]; if($mode){ $out[$i].=$str[$i]!='0'?$unit[$i%4]:''; if($i>1and$str[$i]+$str[$i-1]==0){ $out[$i]=''; } if($i%4==0){ $out[$i].=$unit[4+floor($i/4)]; } } } $retval=join('',array_reverse($out)).$retval; return$retval; } echo(NumToCNMoney(2.55)."<br>"); echo(NumToCNMoney(2.55,1,0)."<br>"); echo(NumToCNMoney(7965)."<br>"); echo(NumToCNMoney(7965,1,0)."<br>"); echo(NumToCNMoney(155555555.68)."<br>"); echo(NumToCNMoney(155555555.68,1,0)."<br>"); echo(NumToCNMoney(0.8888888)."<br>"); echo(NumToCNMoney(0.8888888,1,0)."<br>"); echo(NumToCNMoney(99999999999)."<br>"); echo(NumToCNMoney(99999999999,1,0)."<br>");
希望本文所述对大家学习php程序设计有所帮助。