您好,欢迎访问一九零五行业门户网

php 怎么将数字转换成英文

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视频教程》
以上就是php 怎么将数字转换成英文的详细内容。
其它类似信息

推荐信息