Home >Backend Development >PHP Problem >How to convert numbers to English in php
php method to convert numbers into English: 1. Create a PHP sample file; 2. Convert the numbers through the "function umoney($num,$type="usd") {...}" method Just change it into English.
#The operating environment of this article: Windows 7 system, PHP version 7.4, Dell G3 computer.
php How to convert numbers into English?
PHP Convert amount figures into English
I have been looking for it for a long time, but the search keywords always seem to be unsatisfactory.
The code is as follows:
<?php $num=1220.01; echo fmoney($num);//结果:1,220.21 echo umoney($num); //结果:ONE THOUSAND AND TWO HUNDRED TWENTY DOLLARS AND TWENTY-ONE CENTS ONLY echo umoney($num,"rmb"); //结果:ONE THOUSAND AND TWO HUNDRED TWENTY YUAN AND TWENTY-ONE FEN ONLY //define //格式化货币 function fmoney($num) { $num=0+$num; $num = sprintf("%.02f",$num); if(strlen($num) <= 6) return $num; //从最后开始算起,每3个数它加一个"," for($i=strlen($num)-1,$k=1, $j=100; $i >= 0; $i--,$k++) { $one_num = substr($num,$i,1); if($one_num ==".") { $numArray[$j--] = $one_num; $k=0; continue; } if($k%3==0 and $i!=0) { //如果正好只剩下3个数字,则不加',' $numArray[$j--] = $one_num; $numArray[$j--] = ","; $k=0; } else { $numArray[$j--]=$one_num; } } ksort($numArray); return join("",$numArray); } function umoney($num,$type="usd") { global $numTable,$commaTable,$moneyType; //global $numTable; $numTable[0]="ZERO "; $numTable[1]="ONE "; $numTable[2]="TWO "; $numTable[3]="THREE "; $numTable[4]="FOUR "; $numTable[5]="FIVE "; $numTable[6]="SIX "; $numTable[7]="SEVEN "; $numTable[8]="EIGHT "; $numTable[9]="NINE "; $numTable[10]="TEN "; $numTable[11]="ELEVEN "; $numTable[12]="TWELVE "; $numTable[13]="THIRTEEN "; $numTable[14]="FOURTEEN "; $numTable[15]="FIFTEEN "; $numTable[16]="SIXTEEN "; $numTable[17]="SEVENTEEN "; $numTable[18]="EIGHTEEN "; $numTable[19]="NINETEEN "; $numTable[20]="TWENTY "; $numTable[30]="THIRTY "; $numTable[40]="FORTY "; $numTable[50]="FIFTY "; $numTable[60]="SIXTY "; $numTable[70]="SEVENTY "; $numTable[80]="EIGHTY "; $numTable[90]="NINETY "; $commaTable[0]="HUNDRED "; $commaTable[1]="THOUSAND "; $commaTable[2]="MILLION "; $commaTable[3]="MILLIARD "; $commaTable[4]="BILLION "; $commaTable[5]="????? "; //单位 $moneyType["usd"]="DOLLARS "; $moneyType["usd_1"]="CENTS ONLY"; $moneyType["rmb"]="YUAN "; $moneyType["rmb_1"]="FEN ONLY"; if($type=="") $type="usd"; $fnum = fmoney($num); $numArray = explode(",",$fnum); $resultArray = array(); $k=0; $cc=count($numArray); for($i = 0; $i < count($numArray); $i++) { $num_str = $numArray[$i]; //echo "<br>"; //小数位的处理400.21 if(eregi("\.",$num_str)) { $dotArray = explode(".",$num_str); if($dotArray[1] != 0) { $resultArray[$k++]=format3num($dotArray[0]+0); $resultArray[$k++]=$moneyType[strtolower($type)]; $resultArray[$k++]="AND "; $resultArray[$k++]=format3num($dotArray[1]+0); $resultArray[$k++]=$moneyType[strtolower($type)."_1"]; } else { $resultArray[$k++]=format3num($dotArray[0]+0); $resultArray[$k++]=$moneyType[strtolower($type)]; } } else { //非小数位的处理 if(($num_str+0)!=0) { $resultArray[$k++]=format3num($num_str+0); $resultArray[$k++]=$commaTable[--$cc]; //判断:除小数外其余若不为零则加and for($j=$i; $j <= $cc; $j++) { //echo "<br>"; //echo $numArray[$j]; if($numArray[$j] !=0) { $resultArray[$k++]="AND "; break; } } } } } return join("",$resultArray); } function format3num($num) { global $numTable,$commaTable; $numlen = strlen($num); for($i = 0,$j = 0;$i < $numlen; $i++) { $bitenum[$j++] = substr($num,$i,1); } if($num==0) return ""; if($numlen == 1) return $numTable[$num]; if($numlen == 2) { if($num <= 20) return $numTable[$num]; //第一位不可能零 if($bitenum[1]==0) { return $numTable[$num]; } else { return trim($numTable[$bitenum[0]*10])."-".$numTable[$bitenum[1]]; } } //第一个不可能为零 if($numlen == 3) { if($bitenum[1]==0 && $bitenum[2]==0) { //100 return $numTable[$bitenum[0]].$commaTable[0]; } elseif($bitenum[1]==0) { //102 return $numTable[$bitenum[0]].$commaTable[0].$numTable[$bitenum[2]]; } elseif ($bitenum[2]==0) { //120 return $numTable[$bitenum[0]].$commaTable[0].$numTable[$bitenum[1]*10]; } else { //123 return $numTable[$bitenum[0]].$commaTable[0].trim($numTable[$bitenum[1]*10])."-".$numTable[$bitenum[2]]; } } return $num; } ?>
Recommended learning: "PHP Video Tutorial"
The above is the detailed content of How to convert numbers to English in php. For more information, please follow other related articles on the PHP Chinese website!