PHP中实现数字金额到中文大写字符的转换

原创 2002年05月08日 10:11:00

         在下在开发PHP应用程序的过程中,经常遇到把数字金额转换为大写中文字符的任务。本以为网上一定有编好的PHP函数。但找来找去,都没有找到。 无奈,只好自己动手了。现在就把它拿出来与诸位分享吧。希望能从此改变 “找来找去”都找不到的历史。

<?
function num2rmb ($num){ file://把数字金额转换成中文大写数字的函数
   $c1="零壹贰叁肆伍陆柒捌玖";
   $c2="分角元拾佰仟万拾佰仟亿";
  
   $num=round($num,2);
   $num=$num*100;
   if(strlen($num)>10){
    return "oh,sorry,the number is too long!";
   }
    
   $i=0;
   $c="";
 
   while (1){
    if($i==0){
        $n=substr($num,strlen($num)-1,1);
    }else{
            $n=$num %10;
        }
 
       $p1=substr($c1,2*$n,2);
       $p2=substr($c2,2*$i,2);
       if($n!='0' || ($n=='0' &&($p2=='亿' || $p2=='万' || $p2=='元' ))){
            $c=$p1.$p2.$c;
       }else{
            $c=$p1.$c;
       }
        
       $i=$i+1;
       $num=$num/10;
       $num=(int)$num;
      
       if($num==0){
             break;
       }
    }//end of while|  here, we got a chinese string with some useless character
    
    f//we chop out the useless characters to form the correct output
    $j = 0;
    $slen=strlen($c);
    while ($j< $slen) {
        $m = substr($c,$j,4);
   
      if ($m=='零元' || $m=='零万' || $m=='零亿' || $m=='零零'){
                 $left=substr($c,0,$j);
          $right=substr($c,$j+2); 
                 $c = $left.$right;    
                 $j = $j-2;
                 $slen = $slen-2;
        }  
        $j=$j+2;
     }
    
     if(substr($c,strlen($c)-2,2)=='零'){
         $c=substr($c,0,strlen($c)-2);
     }  // if there is a '0' on the end , chop it out
    
            return $c."整";
}// end of function

?>
<?

 $out=num2rmb(1001.4570);
 echo $out;

?>

         诸位有什么好的意见,请与我联系(cyman20@sina.com)。

 

 

php阿拉伯数字金额转中文大写金额

// 阿拉伯数字转中文大写金额 public static function num_to_rmb($num) { $c1 = "零壹贰叁肆伍陆柒捌玖"; $c2 = "分角元拾佰仟万拾佰仟亿"; /...
  • qq_21844627
  • qq_21844627
  • 2017年04月28日 11:58
  • 353

java实现数字金额转换成汉字大写金额

我们经常在做项目的财务报表,需要打印发票等情况时需要用到小写的财务金额要转换成汉字的大写金额,下面就是实现该功能的代码...
  • software7503
  • software7503
  • 2017年07月10日 20:21
  • 340

Java中实现数字金额到中文大写字符的转换!!

最近用到了数值转成大写人民币的功能,在网上找了一下只有C++版的,好容易找到一个java版的竟然收费!!没办法就自己弄一个出来,想必用到该功能的人肯定少,就拿出来与大家共享!! /**  * Titl...
  • netfalcon
  • netfalcon
  • 2004年03月09日 23:44
  • 2492

Qt将数字转为中文大写金额

在实现之前自己在网上找了相关资料, 没发现好的实现方法, 仿照一篇博客写能实现将整数转为大写中文数字, 但是源代码写得有些复杂且没有实现小数的转换, 索性自己改写了一下....
  • tangtaizong33
  • tangtaizong33
  • 2017年08月02日 18:25
  • 399

java实现将整数转化为中文大写金额

在日常生活中,我们经常会将阿拉伯数字转化为中文大写的情况:"零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖", "拾", "佰", "仟", "万", "...
  • xiaojimanman
  • xiaojimanman
  • 2015年11月02日 11:56
  • 2255

将数字转为中文金额的大写方式(C++版)

/**   * 程序目的:   *   从命令行接收一个数,并将其转化为中文金额的大写方式(C++版)   * 例如 123.45 --> 壹佰贰拾叁元肆角伍分   * @author Lov...
  • u010944926
  • u010944926
  • 2014年03月08日 15:57
  • 3244

用PHP实现小写金额转换大写金额【精确到分】

/** *数字金额转换成中文大写金额的函数 *String Int $num 要转换的小写数字或小写字符串 *return 大写字母 *小数位为两位 **/ function get_...
  • jucrazy
  • jucrazy
  • 2012年01月03日 21:09
  • 4427

ABAP--将数字金额转换为人民币大写字符串(增加UNICODE版本)

1、No Uncode VersionFUNCTION Z_CONVERT_NUMERIC_TO_CHINESE.*"-----------------------------------------...
  • CompassButton
  • CompassButton
  • 2006年09月05日 16:10
  • 4586

JAVA科学计数法,金额数字,转换为中文大写字

java操作金额
  • wangyonglin1123
  • wangyonglin1123
  • 2016年04月28日 13:46
  • 1870

Java数字金额转换为大写金额

代码:package com.daidai.java.RMB;public class Amount2RMB { public static char[] NUMBER_CHAR = "零壹贰叁...
  • daidaineteasy
  • daidaineteasy
  • 2015年09月26日 23:18
  • 5813
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:PHP中实现数字金额到中文大写字符的转换
举报原因:
原因补充:

(最多只允许输入30个字)