• php 阿拉伯数字转中文数字 方法


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

    这个方法更为优秀一些.

     function toCNcap($data){
       $capnum=array("零","壹","贰","叁","肆","伍","陆","柒","捌","玖");
       $capdigit=array("","拾","佰","仟");
       $subdata=explode(".",$data);
       $yuan=$subdata[0];
       $j=0; $nonzero=0;
       for($i=0;$i<strlen($subdata[0]);$i++){
          if(0==$i){ //确定个位
             if($subdata[1]){
                $cncap=(substr($subdata[0],-1,1)!=0)?"元":"元零";
             }else{
                $cncap="元";
             }
          }  
          if(4==$i){ $j=0;  $nonzero=0; $cncap="万".$cncap; } //确定万位
          if(8==$i){ $j=0;  $nonzero=0; $cncap="亿".$cncap; } //确定亿位
          $numb=substr($yuan,-1,1); //截取尾数
          $cncap=($numb)?$capnum[$numb].$capdigit[$j].$cncap:(($nonzero)?"零".$cncap:$cncap);
          $nonzero=($numb)?1:$nonzero;
          $yuan=substr($yuan,0,strlen($yuan)-1); //截去尾数     
          $j++;
       }

       if($subdata[1]){
         $chiao=(substr($subdata[1],0,1))?$capnum[substr($subdata[1],0,1)]."角":"零";
         $cent=(substr($subdata[1],1,1))?$capnum[substr($subdata[1],1,1)]."分":"零分";
       }
       $cncap .= $chiao.$cent."整";
       $cncap=preg_replace("/(零)+/","//1",$cncap); //合并连续“零”
       return $cncap;
     }

    ?>

  • 相关阅读:
    数据库操作类
    并查集的使用
    简单的图片识别,源代码
    Sql Server清理缓存代码
    京东商城商品价格获取方法
    【转】 SEO的含义与意义
    隐藏控制台窗口的方法
    MySQL存储过程详解
    常见电商B2C网站购物车的设计
    UML建模之业务处理模型(Business Process Model,BPM)
  • 原文地址:https://www.cnblogs.com/fengju/p/6173804.html
Copyright © 2020-2023  润新知