php实现将人民币金额转大写的办法
Jun 21, 2016 am 08:48 AM工作中偶尔会碰到需要将人民币金额,也即阿拉伯数字转化为大写汉字的这种情况,下面是作者经过实践总结出来的方法,特此记录以防备忘。
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)$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将阿拉伯数字转化为汉字的函数

Artikel Panas

Alat panas Tag

Artikel Panas

Tag artikel panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Mengapa NameResolutionError(self.host, self, e) daripada e dan cara menyelesaikannya

Bagaimana untuk menggunakan diri dalam Python

Apakah data yang terdapat dalam folder data?

Apa yang perlu dilakukan jika data beban mysql bercelaru?

Apakah perbezaan antara xdata dan data?

Kadar kegagalan projek AI melebihi 80% — kajian menyebut pengiktirafan masalah yang lemah dan tumpuan pada trend teknologi terkini antara masalah utama

Tidak bolehkah data dalam komponen vue menjadi fungsi?
