php 怎么将数字转换成英文

  • 来源:网络
  • 更新日期:2022-03-08

摘要:php将数字转换成英文的方法:1、创建一个PHP示例文件;2、通过“function umoney($num,$type="usd") {...}”方法将数字转换成英文即可。本文操作环境:Windows7系统,PHP7.4版,Dell

php将数字转换成英文的方法:1、创建一个PHP示例文件;2、通过“function umoney($num,$type="usd") {...}”方法将数字转换成英文即可。


本文操作环境:Windows7系统,PHP7.4版,Dell G3电脑。

php 怎么将数字转换成英文?

PHP 金额数字转换成英文

找了很久,搜索的关键词总是词不达意似的。


代码如下:

<?php$num=1220.01;echo fmoney($num);//结果:1,220.21echo umoney($num);//结果:ONE THOUSAND AND TWO HUNDRED TWENTY DOLLARS AND TWENTY-ONE CENTS ONLYecho 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.21if(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];//判断:除小数外其余若不为零则加andfor($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) {//100return $numTable[$bitenum[0]].$commaTable[0];} elseif($bitenum[1]==0) {//102return $numTable[$bitenum[0]].$commaTable[0].$numTable[$bitenum[2]];} elseif ($bitenum[2]==0) {//120return $numTable[$bitenum[0]].$commaTable[0].$numTable[$bitenum[1]*10];} else {//123return $numTable[$bitenum[0]].$commaTable[0].trim($numTable[$bitenum[1]*10])."-".$numTable[$bitenum[2]];}}return $num;}?>

推荐学习:《PHP视频教程》