php人民币转换,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编程有所帮助,


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部