php教程

超轻量级php框架startmvc

PHP人民币金额转大写实例代码

更新时间:2020-03-06 00:48:44 作者:startmvc
PHP人民币金额转大写,其实质就是数字转换成中文大写,测试了一下,非常有趣,随便输个

PHP人民币金额转大写,其实质就是数字转换成中文大写,测试了一下,非常有趣,随便输个数字,就可以将其大写打印出来,初学的朋友们试一下吧


//PHP人民币金额转大写
class Ext_Num2Cny{ 
 static $basical = array(0=>"零","壹","贰","叁","肆","伍","陆","柒","捌","玖"); 
 static $advanced=array(1=>"拾","佰","仟"); 
 
 public static function ParseNumber($number){ 
 $number=trim($number); 
 if ($number>999999999999) return "数字太大,无法处理。抱歉!"; 
 if ($number==0) return "零"; 
 if(strpos($number,'.')){ 
 $number=round($number,2); 
 $data=explode(".",$number); 
 $data[0]=self::int($data[0]); 
 $data[1]=self::dec($data[1]); 
 return $data[0].$data[1]; 
 }else{ 
 return self::int($number).'整'; 
 } 
 } 
 
 public static function int($number){ 
 $arr=array_reverse(str_split($number)); 
 $data=''; 
 $zero=false; 
 $zero_num=0; 
 foreach ($arr as $k=>$v){ 
 $_chinese=''; 
 $zero=($v==0)?true:false; 
 $x=$k%4; 
 if($x && $zero && $zero_num>1)continue; 
 switch ($x){ 
 case 0: 
 if($zero){ 
 $zero_num=0; 
 }else{ 
 $_chinese=self::$basical[$v]; 
 $zero_num=1; 
 } 
 if($k==8){ 
 $_chinese.='亿'; 
 }elseif($k==4){ 
 $_chinese.='万'; 
 } 
 break; 
 default: 
 if($zero){ 
 if($zero_num==1){ 
 $_chinese=self::$basical[$v]; 
 $zero_num++; 
 } 
 }else{ 
 $_chinese=self::$basical[$v]; 
 $_chinese.=self::$advanced[$x]; 
 } 
 } 
 $data=$_chinese.$data; 
 } 
 return $data.'元'; 
 } 
 
 public static function dec($number){ 
 if(strlen($number)<2) $number.='0'; 
 $arr=array_reverse(str_split($number)); 
 $data=''; 
 $zero_num=false; 
 foreach ($arr as $k=>$v){ 
 $zero=($v==0)?true:false; 
 $_chinese=''; 
 if($k==0){ 
 if(!$zero){ 
 $_chinese=self::$basical[$v]; 
 $_chinese.='分'; 
 $zero_num=true; 
 } 
 }else{ 
 if($zero){ 
 if($zero_num){ 
 $_chinese=self::$basical[$v]; 
 } 
 }else{ 
 $_chinese=self::$basical[$v]; 
 $_chinese.='角'; 
 } 
 } 
 $data=$_chinese.$data; 
 } 
 return $data; 
 } 
} 
//使用方法
$nun = new Ext_Num2Cny(); 
echo Ext_Num2Cny::ParseNumber(1234567.5); 

结果:壹佰贰拾叁万肆仟伍佰陆拾柒元伍角

希望本文对大家学习php编程有所帮助,

php金额转大写 php金额转换大写函数 人民币大写金额转换