找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 418|回复: 0
打印 上一主题 下一主题

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

[复制链接]

2617

主题

2617

帖子

7789

积分

论坛元老

Rank: 8Rank: 8

积分
7789
跳转到指定楼层
楼主
发表于 2018-2-14 05:42:27 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

            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)$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:arseNumber(1234567.5);
结果:壹佰贰拾叁万肆仟伍佰陆拾柒元伍角
希望本文对大家学习php编程有所帮助,
            
            
您可能感兴趣的文章:
  • PHP 金额数字转换成英文
  • 用PHP实现小写金额转换大写金额的代码(精确到分)
  • PHP人民币金额数字转中文大写的函数代码
  • PHP把数字转成人民币大写的函数分享
  • php格式化金额函数分享
  • php将金额数字转化为中文大写
  • jquery+php随机生成红包金额数量代码分享
            
  • 分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    用户反馈
    客户端