
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视频教程》
更多关于云服务器,域名注册,虚拟主机的问题,请访问西部数码官网:www.west.cn