一个阿拉伯数字转中文数字的函数
最近因需要,写了个“阿拉伯数字转中文数字的函数”。搜索了精华区只见到一个类似的。
感觉到我的算法不错,所以贴出来共享一下如果要用于金额的转换,对小数部分的处理要做一下修改
<?php
functionch_num($num,$mode=true){
$char=array("零","壹","贰","叁","肆","伍","陆","柒","捌","玖");
$dw=array("","拾","佰","仟","","?","?|","兆");
$dec="?";
$retval="";
if($mode)
preg_match_all("/^0*(\d*)\.?(\d*)/",$num,$ar);
else
preg_match_all("/(\d*)\.?(\d*)/",$num,$ar);
if($ar[2][0]!="")
$retval=$dec.ch_num($ar[2][0],false);//如果有小数,先递归处理小数
if($ar[1][0]!=""){
$str=strrev($ar[1][0]);
for($i=0;$i<strlen($str);$i++){
$out[$i]=$char[$str[$i]];
if($mode){
$out[$i].=$str[$i]!="0"?$dw[$i%4]:"";
if($str[$i]+$str[$i-1]==0)
$out[$i]="";
if($i%4==0)
$out[$i].=$dw[4+floor($i/4)];
}
}
$retval=join("",array_reverse($out)).$retval;
}
return$retval;
}
//echoch_num("12345006789001.123");
//echoch_num("880079.1234");
echoch_num("300045.0123");
?>
相关文章
- js实现 find 函数
- 如何用matlab编写分段函数_请教各位怎样用matlab定义一个分段函数MATLAB分段函数…[通俗易懂]
- 离散数学:判断任意一个关系是否为函数,若是函数,判定其是否为单射、满射或双射[通俗易懂]
- 【说站】python函数形参如何设置默认值
- python中的encode()和decode()函数
- SQL注入报错注入函数[通俗易懂]
- MySQL 之concat 函数的使用
- Oracle CHR函数使用指南(chroracle)
- Linux C中atoi函数的功能实现(linuxatoi)
- 玩转Oracle学习如何创建函数(oracle 写一个函数)
- MySQL中使用SUBSTR函数提取子串(mysql中sustrb)
- 一个ubbcode的函数,速度很快.
- 使一个函数作为另外一个函数的参数来运行的javascript代码
- phparray_push()数组函数:将一个或多个单元压入数组的末尾(入栈)
- 封装了一个js图片轮换效果的函数
- php数组函数序列之next()-移动数组内部指针到下一个元素的位置,并返回该元素值
- php数组函数序列之prev()-移动数组内部指针到上一个元素的位置,并返回该元素值
- php数组函数序列之array_unshift()在数组开头插入一个或多个元素
- js当一个变量为函数时应该注意的一点细节小结
- jQuery.extend函数详解
- android上一个可追踪代码具体到函数某行的日志类
- 奉献出一个封装的curl函数便于调用(抓数据专用)
- 自己写了一个php检测文件编码的函数
- PHPis_subclass_of函数的一个BUG和解决方法
- 封装了一个支持匿名函数的Javascript事件监听器
- PHP封装的一个支持HTML、JS、PHP重定向的多功能跳转函数
- php中rename函数用法分析
- php中in_array函数用法探究
- 判定一个字符串是否为有效时间的函数