数字转人民币大写
这个也是在网上收集到的,只是稍稍修改了一下。
/************************************************************************** 函数说明: 数字转人民币大写----->完成 使用方法: 函数名(字符串) **************************************************************************/ function num_to_rmb($num){ $c1="零壹贰叁肆伍陆柒捌玖"; $c2="分角元拾佰仟万拾佰仟亿"; //精确到分后面就不要了,所以只留两个小数位 $num=round($num,2); //将数字转化为整数 $num=number_format($num*100,0,"",""); //如果金额大于12位数 if(strlen($num)>12){ return"金额太大,请检查"; } $i=0; $c=""; while(1){ //取最后一位数字 $n=($i==0?substr($num,strlen($num)-1,1):fmod($num,10)); #fmod() 函数返回除法的浮点数余数。 //每次将最后一位数字转化为中文 $p1=substr($c1,3*$n,3); $p2=substr($c2,3*$i,3); $c=($n!='0'||($n=='0'&&($p2=='亿'||$p2=='万'||$p2=='元'))?$p1.$p2.$c:$p1.$c); $i=$i+1; //去掉数字最后一位了 $num=floor($num/10); $num=number_format($num,0,"",""); //结束循环 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 (substr($c,-3,3)=="分")?($c):($c."整"); } }
阅读剩余
版权声明:
作者:Mr.x
链接:http://www.x1985.org/?p=375
文章版权归作者所有,未经允许请勿转载。
THE END