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

5年以前  |  阅读数:781 次  |  编程语言: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编程有所帮助,

Copyright© 2013-2020

All Rights Reserved 京ICP备2023019179号-8