数字转英文
2018-09-07 13:45
<?php//___{xf_num2en}________________________________________
//***說明:數值轉英文表示法
//===回傳:<string>
//---NN)數值FF)小數位
//============================================================
functionxf_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
functionxf_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?>
上一篇:php生出随机字符串