php實現數字轉換成中文大小寫代碼

來源:互聯網
上載者:User
  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. ?>
複製代碼
  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.