首页 > 开发 > PHP > 正文

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

2024-05-04 23:39:25
字体:
来源:转载
供稿:网友

一个非常有趣的PHP人民币金额数字转中文大写实例代码与大家分享,感兴趣的小伙伴可以参考一下。

PHP人民币金额转大写,其实质就是数字转换成中文大写,测试了一下,非常有趣,随便输个数字,就可以将其大写打印出来,初学的朋友们试一下吧

 

 
  1. //PHP人民币金额转大写 
  2. class Ext_Num2Cny{  
  3. static $basical = array(0=>"零","壹","贰","叁","肆","伍","陆","柒","捌","玖");  
  4. static $advanced=array(1=>"拾","佰","仟");  
  5.  
  6. public static function ParseNumber($number){  
  7. $number=trim($number);  
  8. if ($number>999999999999) return "数字太大,无法处理。抱歉!";  
  9. if ($number==0) return "零";  
  10. if(strpos($number,'.')){  
  11. $number=round($number,2);  
  12. $data=explode(".",$number);  
  13. $data[0]=self::int($data[0]);  
  14. $data[1]=self::dec($data[1]);  
  15. return $data[0].$data[1];  
  16. }else{  
  17. return self::int($number).'整';  
  18. }  
  19. }  
  20.  
  21. public static function int($number){  
  22. $arr=array_reverse(str_split($number));  
  23. $data='';  
  24. $zero=false;  
  25. $zero_num=0;  
  26. foreach ($arr as $k=>$v){  
  27. $_chinese='';  
  28. $zero=($v==0)?true:false;  
  29. $x=$k%4;  
  30. if($x && $zero && $zero_num>1)continue;  
  31. switch ($x){  
  32. case 0:  
  33. if($zero){  
  34. $zero_num=0;  
  35. }else{  
  36. $_chinese=self::$basical[$v];  
  37. $zero_num=1;  
  38. }  
  39. if($k==8){  
  40. $_chinese.='亿';  
  41. }elseif($k==4){  
  42. $_chinese.='万';  
  43. }  
  44. break;  
  45. default:  
  46. if($zero){  
  47. if($zero_num==1){  
  48. $_chinese=self::$basical[$v];  
  49. $zero_num++;  
  50. }  
  51. }else{  
  52. $_chinese=self::$basical[$v];  
  53. $_chinese.=self::$advanced[$x];  
  54. }  
  55. }  
  56. $data=$_chinese.$data;  
  57. }  
  58. return $data.'元';  
  59. }  
  60.  
  61. public static function dec($number){  
  62. if(strlen($number)<2) $number.='0';  
  63. $arr=array_reverse(str_split($number));  
  64. $data='';  
  65. $zero_num=false;  
  66. foreach ($arr as $k=>$v){  
  67. $zero=($v==0)?true:false;  
  68. $_chinese='';  
  69. if($k==0){  
  70. if(!$zero){  
  71. $_chinese=self::$basical[$v];  
  72. $_chinese.='分';  
  73. $zero_num=true;  
  74. }  
  75. }else{  
  76. if($zero){  
  77. if($zero_num){  
  78. $_chinese=self::$basical[$v];  
  79. }  
  80. }else{  
  81. $_chinese=self::$basical[$v];  
  82. $_chinese.='角';  
  83. }  
  84. }  
  85. $data=$_chinese.$data;  
  86. }  
  87. return $data;  
  88. }  
  89. }  
  90. //使用方法 
  91. $nun = new Ext_Num2Cny();  
  92. echo Ext_Num2Cny::ParseNumber(1234567.5); 

结果:

壹佰贰拾叁万肆仟伍佰陆拾柒元伍角

希望本文对大家学习php编程有所帮助,

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表