数字转英文

<?php //___{xf_num2en}________________________________________  
//*** 說明: 數值轉英文表示法  
//=== 回傳: <string>  
//--- NN)數值  FF)小數位  
//============================================================  
    function xf_num2en($NN, $FF=0) {  
        //===[前置]========================================  
          if (!is_numeric($NN)) return '';  
          ($FF>2) and $FF=2;  
          $xn='';       $xf='';  

          global $enws;  
          $enws=array(  
                0=>"zero",1=>"one",2=>"two",3=>"three",4=>"four",  
                5=>"five",6=>"six",7=>"seven",8=>"eight",9=>"nine",  
                10=>"ten",11=>"eleven",12=>"twelve",  
                13=>"thirteen",14=>"fourteen", 15=>"fifteen",  
                16=>"sixteen",17=>"seventeen",18=>"eighteen",19=>"nineteen",  
                20=>"twenty",30=>"thirty",40=>"forty",50=>"fifty",  
                60=>"sixty",70=>"seventy",80=>"eighty",90=>"ninety");  
        //===[整數]========================================  
          $nk=floor($NN);  
          $cnt=0;  
          while ($nk) {  
                $n=$nk % 1000;  
                if ($n) {  
                    $x=xf_enNum4($n);  
                    if ($cnt==1)        $xn=$x. 'thousand '. $xn;  
                    elseif ($cnt==2)    $xn=$x. 'million '. $xn;  
                    elseif ($cnt==3)    $xn=$x. 'billion '. $xn;  
                    elseif ($cnt==4)    $xn=$x. 'trillion '. $xn;  
                    else                $xn=$x;  
                }  
                $cnt+=1;  
                $nk=floor($nk/1000);  
          }     //--while  
        //===[小數]========================================  
          if ($FF>0) {  
              $n=floor($NN*100) % 100;  
              ($n) and $xf=xf_enNum4($n). 'cent';  
          }  

          return $xn.$xf;  
    }   //--xf_num2en  

    function xf_enNum4($NN) {  
        global $enws;  
        $ans='';  
        $n=floor($NN/100);  
        ($n) and $ans=$enws[$n]. ' hundred ';  
        $n=$NN % 100;  
        if ($n) {  
            if ($n<20)  $ans.=$enws[$n]. ' ';  
            else {  
                $m=floor($n/10) * 10;  
                $ans.=$enws[$m]. ' ';  
                $n=$n % 10;  
                ($n) and $ans.=$enws[$n]. ' ';  
            }  
        }  
        return $ans;  
    }   //--xf_enNum4 ?>

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/d9226cccef54290c869a250ea3e76273.html