>백엔드 개발 >PHP 튜토리얼 >PHP RMB 금액을 대문자로 변환 예제 code_php 기술

PHP RMB 금액을 대문자로 변환 예제 code_php 기술

WBOY
WBOY원래의
2016-05-16 20:06:581223검색

PHP에서 RMB 금액을 대문자로 변환하는 것이 핵심입니다. 테스트해 봤는데 숫자만 입력하면 대문자로 출력할 수 있으니 한번 시도해 보세요. 🎜>

//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)&#63;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으로 문의하세요.