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

2016-01-29 15:00 38 1 收藏

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

【 tulaoshi.com - 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;
}

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/php/)

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

?

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/php/) 

来源:http://www.tulaoshi.com/n/20160129/1495003.html

延伸阅读
标签: word
Word文档快速输入大写中文数字的教程   在Word文档中输入一大串大写中文数字(如壹拾贰万零捌佰伍拾)比较麻烦,实际上可以通过输入阿拉伯数字转化为大写中文数字的方法进行输入,方法如下: 第一步:编辑文档,需要输入大写数字时。 第二步:单击插入选项卡。 第三步:在插入选项卡中选择数字点击,弹出数字对...
标签: word
在Word中快速输入大写中文数字的方法   在一些特殊领域,例如银行等金融部门,经常需要输入中文的数字,一次两次可以,但是输入次数多了未免太麻烦了,这里介绍一种快速输入中文数字的方法: 执行插入菜单上的数字命令,在弹出的数字对话框中输入需要的数字,如输入1231291,然后在数字类型里面选择中文数字版式壹、贰、叁.. ,...
标签: 生活常识
阿拉伯挤奶法的危害有哪些 阿拉伯挤奶法的危害有哪些 阿拉伯挤奶法,又称JELQ挤奶法,可能有些人会对这个概念有些陌生,该方法主要就是通过按摩的方式让男人的“那话”变得雄伟异常,动作类似于挤牛奶的动作,顾称做挤奶法。 理论上阿拉伯挤奶法适用年龄没有严格的限制,从4-40不等,有人错误的认为挤奶法是让男人再次发育,其实不是...

经验教程

789

收藏

30
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部