当前位置:Gxlcms > PHP教程 > php实现数字转换成中文大小写的代码

php实现数字转换成中文大小写的代码

时间:2021-07-01 10:21:17 帮助过:3人阅读

  1. //chinese_money.PHP
  2. //Changing Arab Money Num to Chinese Money Num
  3. /*
  4. Functions List:
  5. Chinese_Money_Max()
  6. 小数点前
  7. 此函数可以单独拿出用于将阿拉伯数字转为中文数字(大小写可选,默认为大写)
  8. 仅限整数(正负皆可)
  9. Chinese_Money_Min()
  10. 处理小数点后
  11. Chinese_Money()
  12. by bbs.it-home.org
  13. */
  14. function Chinese_Money_Max($i,$s=1){
  15. $c_digIT_min = array("零","十","百","千","万","亿","兆");
  16. $c_num_min = array("零","一","二","三","四","五","六","七","八","九","十");
  17. $c_digIT_max = array("零","拾","佰","仟","万","亿","兆");
  18. $c_num_max = array("零","壹","贰","叁","肆","伍","陆","柒","捌","玖","拾");
  19. if($s==1){
  20. $c_digIT = $c_digIT_max;
  21. $c_num = $c_num_max;
  22. }else{
  23. $c_digIT = $c_digIT_min;
  24. $c_num = $c_num_min;
  25. }
  26. if($i<0)
  27. return "负".Chinese_Money_Max(-$i);
  28. //return "-".Chinese_Money_Max(-$i);
  29. if ($i < 11)
  30. return $c_num[$i];
  31. if ($i < 20)
  32. return $c_num[1].$c_digIT[1] . $c_num[$i - 10];
  33. if ($i < 100) {
  34. if ($i % 10)
  35. return $c_num[$i / 10] . $c_digIT[1] . $c_num[$i % 10];
  36. else
  37. return $c_num[$i / 10] . $c_digIT[1];
  38. }
  39. if ($i < 1000) {
  40. if ($i % 100 == 0)
  41. return $c_num[$i / 100] . $c_digIT[2];
  42. else if ($i % 100 < 10)
  43. return $c_num[$i / 100] . $c_digIT[2] . $c_num[0] . Chinese_Money_Max($i % 100);
  44. else if ($i % 100 < 10)
  45. return $c_num[$i / 100] . $c_digIT[2] . $c_num[1] . Chinese_Money_Max($i % 100);
  46. else
  47. return $c_num[$i / 100] . $c_digIT[2] . Chinese_Money_Max($i % 100);
  48. }
  49. if ($i < 10000) {
  50. if ($i % 1000 == 0)
  51. return $c_num[$i / 1000] . $c_digIT[3];
  52. else if ($i % 1000 < 100)
  53. return $c_num[$i / 1000] . $c_digIT[3] . $c_num[0] . Chinese_Money_Max($i % 1000);
  54. else
  55. return $c_num[$i / 1000] . $c_digIT[3] . Chinese_Money_Max($i % 1000);
  56. }
  57. if ($i < 100000000) {
  58. if ($i % 10000 == 0)
  59. return Chinese_Money_Max($i / 10000) . $c_digIT[4];
  60. else if ($i % 10000 < 1000)
  61. return Chinese_Money_Max($i / 10000) . $c_digIT[4] . $c_num[0] . Chinese_Money_Max($i % 10000);
  62. else
  63. return Chinese_Money_Max($i / 10000) . $c_digIT[4] . Chinese_Money_Max($i % 10000);
  64. }
  65. if ($i < 1000000000000) {
  66. if ($i % 100000000 == 0)
  67. return Chinese_Money_Max($i / 100000000) . $c_digIT[5];
  68. else if ($i % 100000000 < 1000000)
  69. return Chinese_Money_Max($i / 100000000) . $c_digIT[5] . $c_num[0] . Chinese_Money_Max($i % 100000000);
  70. else
  71. return Chinese_Money_Max($i / 100000000) . $c_digIT[5] . Chinese_Money_Max($i % 100000000);
  72. }
  73. if ($i % 1000000000000 == 0)
  74. return Chinese_Money_Max($i / 1000000000000) . $c_digIT[6];
  75. else if ($i % 1000000000000 < 100000000)
  76. return Chinese_Money_Max($i / 1000000000000) . $c_digIT[6] . $c_num[0] . Chinese_Money_Max($i % 1000000000000);
  77. else
  78. return Chinese_Money_Max($i / 1000000000000) . $c_digIT[6] . Chinese_Money_Max($i % 1000000000000);
  79. }
  80. function Chinese_Money_Min($a){
  81. $c_num = array("零","一","二","三","四","五","六","七","八","九","十");
  82. if($a<10)
  83. return $c_num[0] . "角" . $c_num[$a] . "分";
  84. else if($a%10 == 0)
  85. return $c_num[$a/10] . "角" . $c_num[0] . "分";
  86. else
  87. return $c_num[floor($a/10)] . "角" . $c_num[$a%10] ."分";
  88. }
  89. /*小数点后两位*/
  90. function Chinese_Num_Min($a){
  91. $c_num = array("零","一","二","三","四","五","六","七","八","九","十");
  92. if($a<10)
  93. return $c_num[0] . $c_num[$a] ;
  94. else if($a%10 == 0)
  95. return $c_num[$a/10] . $c_num[0] ;
  96. else
  97. return $c_num[floor($a/10)] . $c_num[$a%10];
  98. }
  99. function Chinese_Money($i){
  100. $j=Floor($i);
  101. $x=($i-$j)*100;
  102. //return $x;
  103. //return Chinese_Money_Max($j)."元".Chinese_Money_Min($x)."整";
  104. return Chinese_Money_Max($j,'0')."点".Chinese_Num_Min($x);
  105. }
  106. //The Following Code is Testing The Functions:
  107. /*
  108. $e_money =332123.32;
  109. echo Chinese_Money($e_money);
  110. */
  111. ?>

人气教程排行