首页 > 编程教程 > PHP > 正文

php实现人民币金额转为大写汉字的方法

2019-03-08 PHP集中营 gramer 点击: 评论
本文实例讲解php实现人民币金额转为大写汉字的方法输入阿拉伯数字金额为:1234567 5输出大写汉字金额为:壹佰贰拾叁万肆仟伍佰陆拾柒元

天晟网 小编在整理编程教程 > PHP > 看到php实现人民币金额转为大写汉字的方法 ,下面是小编45为您找到的37963相关内容,希望45对您有帮助。

本文实例讲解php实现人民币金额转为大写汉字的方法

输入阿拉伯数字金额为:1234567.5
输出大写汉字金额为:壹佰贰拾叁万肆仟伍佰陆拾柒元伍角


<?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);
?>

转载文章请标明来自天晟网 - Timsion.com > 编程教程 > PHP >
标题:php实现人民币金额转为大写汉字的方法
网址:http://www.timsion.com/php/37963.html

上一篇:PHP计算两个日期之间相差的天数
下一篇:PHP关联数组实现根据元素值删除元素的方法

免责声明:以上内容来自互联网和用户投稿,不代表本站的观点和立场,版权归原作者所有,如有侵权,请与我们联系。