数字转换成中文大小写

  1. 云栖社区>
  2. 博客>
  3. 正文

数字转换成中文大小写

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

 

网友评论

登录后评论
0/500
评论
航空母舰
+ 关注