• 技术文章 >php教程 >php手册

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

    2016-06-13 08:53:44原创417

    PHP人民币金额转大写实例代码,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编程有所帮助,

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    上一篇:php正则匹配文章中的远程图片地址并下载图片至本地, 下一篇:解决php表单重复提交实现方法,php表单重复提交
    PHP编程就业班

    相关文章推荐

    • 让PHP支持页面回退的两种方法[转]• 第十四节 命名空间 [14]• Windows下搭建PHP开发环境• 动态网页技术PHP程序字符串处理函数• PHP应用分页显示制作详细讲解

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网