php 数字英文中文版,php 数字转换成英文显示

php 数字转换成英文显示

数字转换成英文显示

调用方法

$price = 111113114;

echo umoney($price);

//输出结果

//one hundred eleven million, one hundred thirteen thousand, one hundred fourteen

//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 = $this->fmoney($num);//转换成货币格式

$numArray = explode(“,”,$fnum);

$resultArray = array();

$k=0;

$cc=count($numArray);

for($i = 0; $i < count($numArray); $i++) {

$num_str = $numArray[$i];

//echo "

“;

//小数位的处理400.21

if(eregi(“\.”,$num_str)) {

$dotArray = explode(“.”,$num_str);

if($dotArray[1] != 0) {

$resultArray[$k++]=$this->format3num($dotArray[0]+0);

//$resultArray[$k++]=$moneyType[strtolower($type)];

$resultArray[$k++]=” “;

$resultArray[$k++]=$this->format3num($dotArray[1]+0);

//$resultArray[$k++]=$moneyType[strtolower($type).”_1”];

} else {

$resultArray[$k++]=$this->format3num($dotArray[0]+0);

//$resultArray[$k++]=$moneyType[strtolower($type)];

}

} else {

//非小数位的处理

if(($num_str+0)!=0) {

$resultArray[$k++]=$this->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++]=” “;

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

if($bitenum[1].$bitenum[2] <= 20){

return $numTable[$bitenum[0]].$commaTable[0].$numTable[$bitenum[1].$bitenum[2]];

}else{

return $numTable[$bitenum[0]].$commaTable[0].trim($numTable[$bitenum[1]*10])."-".$numTable[$bitenum[2]];

}

}

}

return $num;

}

标签:PHP

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值