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

songyu277

songyu277

2016-01-29 15:00

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

最近因需要,写了个“阿拉伯数字转中文数字的函数”。搜索了精华区只见到一个类似的。
感觉到我的算法不错,所以贴出来共享一下如果要用于金额的转换,对小数部分的处理要做一下修改
<?php
function ch_num($num,$mode=true) {
  $char = array("零","壹","贰","叁","肆","伍","陆","柒","捌","玖");
  $dw = array("","拾","佰","仟","","萬","億","兆");
  $dec = "點";
  $retval = "";

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

  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");

?

(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/php/) 
展开更多 50%)
分享

猜你喜欢

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

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

excel中将阿拉伯数字转换成中文大写数字的函数方式

excel
excel中将阿拉伯数字转换成中文大写数字的函数方式

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

将阿拉伯数字转成中文字的程式

编程语言 网络编程
将阿拉伯数字转成中文字的程式

金额阿拉伯数字转换为中文的存储过程

SQLServer
金额阿拉伯数字转换为中文的存储过程

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

一个将阿拉伯数字转换成中文大写的最简单算法

电脑网络
一个将阿拉伯数字转换成中文大写的最简单算法

金额阿拉伯数字转换为中文的自定义函数

SQLServer
金额阿拉伯数字转换为中文的自定义函数

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

PHP模拟SQL Server的两个日期处理函数

PHP模拟SQL Server的两个日期处理函数

PHPShop存在多个安全漏洞

PHPShop存在多个安全漏洞
下拉加载更多内容 ↓