45fan.com - 路饭网

搜索: 您的位置主页 > 电脑频道 > 编程代码 > 阅读资讯:PHP如何实现人民币金额大写转化?

PHP如何实现人民币金额大写转化?

2015-10-25 18:50:58 来源:www.45fan.com 【

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编程有所帮助,


本文地址:http://www.45fan.com/bcdm/25523.html
Tags: PHP 人民币 金额
编辑:路饭网
推广内容
推荐阅读
热门推荐
推荐文章
关于我们 | 联系我们 | 友情链接 | 网站地图 | Sitemap | App | 返回顶部