php数字转英文,PHP_PHP 金额数字转换成英文,复制代码 代码如下:<?php $num= - phpStudy...

PHP 金额数字转换成英文

复制代码 代码如下:

$num=1220.01;

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

echo umoney($num);

//结果:ONE THOUSAND AND TWO HUNDRED TWENTY DOLLARS AND TWENTY-ONE CENTS ONLY

echo 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 "
";

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

}

}

}

}

}

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

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

}

}

return $num;

}

?>相关阅读:

去掉字符串头所有的0的批处理

MSSQL 提取汉字实现语句

把数据从SQL Server输出到文本文件

IE6/7 and IE8/9(Q)中td的上下padding失效的解决方法

非常漂亮的Div+CSS布局入门教程

Access2000迁移到Oracle9i要点

织梦dedecms站点data目录位置变动调整验证码不显示的解决办法

$$()函数应用实例

javascript处理table表格的代码

Java中基本数据类型与流

VBS教程:方法-WriteBlankLines 方法

在SQLServer上查看SQL语句的执行时间的方法

学习CSS的背景图像属性background

PHP编程网上资源导航

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
引用和引用提供了关于在phpstudy中安装php扩展的指南。根据这些指南,你可以将php_yaf.dll文件放置在phpstudyPHP路径下,在php.ini文件中手动添加extension=yaf的配置。具体来说,你可以将php_yaf.dll文件复制到D:\phpstudy_pro\Extensions\php\php7.3.4nts\ext路径下,并在php.ini文件中添加extension=yaf配置项。这样就可以在phpstudy的面板中启用yaf扩展了。引用则提供了一个可能导致问题的原因,即项目使用的php版本与cmd的版本不兼容。你可以通过检查项目使用的php版本是否与phpstudy中的版本一致来确认这一点。如果版本不一致,可以在phpstudy中切换php版本或者调整项目的php版本。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [阿里云服务下安装Composer时出现 错误:添加到用户路径:C:/phpStudy/Extensions/php/php7.3.4nts 安装无法...](https://blog.csdn.net/qq_42345116/article/details/122595160)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [php7.3.4可用yaf扩展下载phpstudy小皮面板php_yaf.dll(亲测100%可用)](https://download.csdn.net/download/lingyun820/16593737)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [执行php命令行出现 Failed loading D:\phpStudy\php\php7.3.4nts\ext\php_xdebug.dll](https://blog.csdn.net/weixin_42079053/article/details/105618234)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值