php数字转换成英语,PHP 金额数字转换成英文

复制代码代码如下:

$num=1220.01;

echofmoney($num);//结果:1,220.21

echoumoney($num);

//结果:ONETHOUSANDANDTWOHUNDREDTWENTYDOLLARSANDTWENTY-ONECENTSONLY

echoumoney($num,"rmb");

//结果:ONETHOUSANDANDTWOHUNDREDTWENTYYUANANDTWENTY-ONEFENONLY

//define

//格式化货币

functionfmoney($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==0and$i!=0){

//如果正好只剩下3个数字,则不加','

$numArray[$j--]=$one_num;

$numArray[$j--]=",";

$k=0;

}else{

$numArray[$j--]=$one_num;

}

}

ksort($numArray);

returnjoin("",$numArray);

}

functionumoney($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"]="CENTSONLY";

$moneyType["rmb"]="YUAN";

$moneyType["rmb_1"]="FENONLY";

if($type=="")$type="usd";

$fnum=fmoney($num);

$numArray=explode(",",$fnum);

$resultArray=array();

$k=0;

$cc=count($numArray);

for($i=0;$i

$num_str=$numArray[$i];

//echo"
";

//小数位的处理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"
";

//echo$numArray[$j];

if($numArray[$j]!=0){

$resultArray[$k++]="AND";

break;

}

}

}

}

}

returnjoin("",$resultArray);

}

functionformat3num($num){

global$numTable,$commaTable;

$numlen=strlen($num);

for($i=0,$j=0;$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{

returntrim($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;

}

?>

您可能感兴趣的文章:PHP实现十进制数字与二十六进制字母串相互转换操作示例php使用json_decode后数字对象转换成了科学计数法的解决方法php把数字转换成汉字的代码php实现阿拉伯数字和罗马数字相互转换的方法php短网址和数字之间相互转换的方法PHP实现将科学计数法转换为原始数字字符串的方法php中base_convert()进制数字转换函数实例PHP中IP地址与整型数字互相转换详解php导出csv格式数据并将数字转换成文本的思路以及代码分享PHP数字金额转换成中文大写显示

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值