数字转换成中文大小写

简介:
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. ?>  

 

相关文章
|
2月前
|
C语言
ASCII编码的52个大小写字母
ASCII编码的52个大小写字母
206 1
|
11月前
写一个方法实现数字转中文大写的方法
之前开发了一个报销相关的应用,其中遇到了小写数字转中文大写的需求,搜寻了一些资料以后对方法进行了改进,现在分享出来给大家参考
写一个方法实现数字转中文大写的方法
|
8月前
|
算法 搜索推荐 程序员
C语言第九炼——实现大小写字母的互转
C语言第九炼——实现大小写字母的互转
45 0
验证用户名,支持中英文(包括全角字符)、数字、下划线和减号 (全角及汉字算两位),长度为4-20位,中文按二位计数
验证用户名,支持中英文(包括全角字符)、数字、下划线和减号 (全角及汉字算两位),长度为4-20位,中文按二位计数
|
Java
实现字符串大小写的转换
实现字符串大小写的转换
102 0
|
存储 编解码 索引
[oeasy]python0131_[趣味拓展]各种符号_汉语拼音符号_中文全角英文字母_中文全角标点
[oeasy]python0131_[趣味拓展]各种符号_汉语拼音符号_中文全角英文字母_中文全角标点
119 0
[oeasy]python0131_[趣味拓展]各种符号_汉语拼音符号_中文全角英文字母_中文全角标点
写几个正则表达式:只允许输入汉字、数字、字母、中英文小括号,并且10个字符以内|只允许输入汉字、数字、字母、英文小括号|电话号码正则表达式
写几个正则表达式:只允许输入汉字、数字、字母、中英文小括号,并且10个字符以内|只允许输入汉字、数字、字母、英文小括号|电话号码正则表达式
216 0
正则表达式去除空格、符号,只保留中文、英文、数字
正则表达式去除空格、符号,只保留中文、英文、数字
716 0
忽略大小写比较字符串大小
一般我们用 strcmpstrcmp 可比较两个字符串的大小,比较方法为对两个字符串从前往后逐个字符相比较(按 ASCII 码值大小比较),直到出现不同的字符或遇到 \0 为止。 如果全部字符都相同,则认为相同;如果出现不相同的字符,则以第一个不相同的字符的比较结果为准。 但在有些时候,我们比较字符串的大小时,希望忽略字母的大小,例如 Hello 和 hello 在忽略字母大小写时是相等的。 请写一个程序,实现对两个字符串进行忽略字母大小写的大小比较。
292 0