<?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 ?> 
