• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

php实现将人民币金额转大写的办法_php

php 搞代码 7年前 (2018-06-21) 123次浏览 已收录 0个评论

工作中偶尔会碰到需要将人民币金额,也即阿拉伯数字转化为大写汉字的这种情况,下面是作者经过实践总结出来的方法,特此记录以防备忘。

 class Num2Cny{   static $basical=array(0=>'零','壹','贰','叁','肆','伍','陆','柒','捌','玖');   static $advanced=array(1=>'拾','佰','仟');   public static function ParseNumber($number){     $number=trim($number);     if(!is_numeric($number)intval($number)>999999999999) return 'error';     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;   } }

使用过程也很简单,如下:

 echo Num2Cny::ParseNumber(1234567.5);//www.Alixixi.com

结果将输出:

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

另外说明一下的是如果仅需要将阿拉伯数字转化为大写的情况下,可参照本站文章:

php将阿拉伯数字转化为汉字的函数

欢迎大家阅读php实现将人民币金额转大写的办法_php》,跪求各位点评,若觉得好的话请收藏本文,by 搞代码


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:php实现将人民币金额转大写的办法_php
喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址