php下一个阿拉伯数字转中文数字的函数

yipeiwu_com7年前PHP代码库
<?php
function ch_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;
}

//echo ch_num("12345006789001.123");
//echo ch_num("880079.1234");
echo ch_num("300045.0123");

?>

相关文章

PHP将整数数字转换为罗马数字实例分享

PHP将整数数字转换为罗马数字实例分享

方法一:自定义函数 我们可以自己手动编写一个函数来实现此功能,这个函数可以将数字作为第一个参数,将其转换为罗马并返回。 注:大多数算法只能在1-4999的范围内工作,如果使用特大数,脚本...

Windows 下安装 swoole 图文教程(php)

Windows 下安装 swoole 图文教程(php)

Windows 下安装 swoole 具体步骤: Swoole,原本不支持在Windows下安装的,所以我们要安装Cygwin来使用。在安装Cygwin下遇到了很多坑,百度经验上的文档不...

PHP中常用的字符串格式化函数总结

PHP中常用的字符串格式化函数总结

字符串的格式化就是将字符串处理为某种特定的格式。通常用户从表单中提交给服务器的数据都是字符串的形式,为了达到期望的输出效果,就需要按照一定的格式处理这些字符串后再去使用。经常见到的字符串...

PHP自定义错误用法示例

本文实例讲述了PHP自定义错误用法。分享给大家供大家参考,具体如下: 自定义错误就是自己可以完全控制错误以及其提示内容 设定错误由自己定义的函数来处理 set_error_handl...

全面解读PHP的Yii框架中的日志功能

Yii页面级日志开启 在 Main.php中 log段添加、 下面显示页面日志 array( 'class'=>'CWebLogRoute', 'levels'=>'tra...