介绍
这篇文章运用简单易懂的例子给大家介绍如何转换php数字大写,代码非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。
php数字转换大写的方法:首先判断输出的金额是否为数字或数字字符串,然后预定义中文转换的数组以及单位转换的数组,接着将金额的数值字符串拆分成数组;最后将整数部分替换成大写汉字即可。
引用><强> php数字金额转换大写金额强>
代码如下:
/* * *将数值金额转换为中文大写金额 * @param美元金额浮动金额(分) *类型int (@param美元补整类型,0:到角补整;1:到元补整 * @return混合中文大写金额 */函数convertAmountToCn(数量、类型=1美元){ 如果($金额==0){ 返回“零元整“; } 如果(strlen(美元金额)比;12){ 返回“不支持万亿及更高金额“; }//预定义中文转换的数组 $数字=阵列(& # 39;零& # 39;& # 39;壹& # 39;,& # 39;贰& # 39;,& # 39;叁& # 39;,& # 39;肆& # 39;,& # 39;伍& # 39;,& # 39;陆& # 39;,& # 39;柒& # 39;,& # 39;捌& # 39;,& # 39;玖& # 39;);//预定义单位转换的数组 $位置=阵列(& # 39;仟& # 39;& # 39;佰& # 39;,& # 39;拾& # 39;,& # 39;亿& # 39;,& # 39;仟& # 39;,& # 39;佰& # 39;,& # 39;拾& # 39;,& # 39;万& # 39;,& # 39;仟& # 39;,& # 39;佰& # 39;,& # 39;拾& # 39;,& # 39;元& # 39;);//将金额的数值字符串拆分成数组 $ amountArr=爆炸(& # 39;强生# 39;,美元金额);//将整数位的数值字符串拆分成数组 (函数integerArr=美元amountArr [0], 1);//将整数部分替换成大写汉字 $=& # 39;结果人民币& # 39;; $ integerArrLength=count ($ integerArr); $ positionLength=count($位置); ($ i=0;i经过考虑后,发现之前写的代码不够严谨,特此补充了一份新版的代码
/* * *将数值金额转换为中文大写金额 * @param美元金额浮动金额(支持到分) *类型int (@param美元补整类型,0:到角补整;1:到元补整 * @return混合中文大写金额 */函数convertAmountToCn(数量、类型=1美元){//判断输出的金额是否为数字或数字字符串 如果(! is_numeric金额($)){ 返回“要转换的金额只能为数字!“; }//金额为0,则直接输出“零元整, 如果($金额==0){ 返回“人民币零元整“; }//金额不能为负数 如果(美元金额& lt;0){ 返回“要转换的金额不能为负数!“; }//金额不能超过万亿,即12位 如果(strlen(美元金额)比;12){ 返回“要转换的金额不能为万亿及更高金额!“; }//预定义中文转换的数组 $数字=阵列(& # 39;零& # 39;& # 39;壹& # 39;,& # 39;贰& # 39;,& # 39;叁& # 39;,& # 39;肆& # 39;,& # 39;伍& # 39;,& # 39;陆& # 39;,& # 39;柒& # 39;,& # 39;捌& # 39;,& # 39;玖& # 39;);//预定义单位转换的数组 $位置=阵列(& # 39;仟& # 39;& # 39;佰& # 39;,& # 39;拾& # 39;,& # 39;亿& # 39;,& # 39;仟& # 39;,& # 39;佰& # 39;,& # 39;拾& # 39;,& # 39;万& # 39;,& # 39;仟& # 39;,& # 39;佰& # 39;,& # 39;拾& # 39;,& # 39;元& # 39;);//将金额的数值字符串拆分成数组 $ amountArr=爆炸(& # 39;强生# 39;,美元金额);//将整数位的数值字符串拆分成数组 (函数integerArr=美元amountArr [0], 1);//将整数部分替换成大写汉字 $=& # 39;结果人民币& # 39;; $ integerArrLength=count ($ integerArr);//整数位数组的长度 $ positionLength=count($位置);//单位数组的长度 ($ i=0;美元我& lt;integerArrLength美元;$我+ +){//如果数值不为0,则正常转换 if ($ integerArr[我]美元!=0){ 结果=美元的结果。美元$数字[integerArr [$ i]]。美元地位[positionLength - integerArrLength美元+ $ i]; 其他}{//如果数值为0,且单位是亿,万,元这三个的时候,则直接显示单位 如果((positionLength - integerArrLength美元+ $ i + 1) % 4==0) { 结果=美元的结果。美元地位[positionLength - integerArrLength美元+ $ i]; } } }//如果小数位也要转换 如果($ type==0) {//将小数位的数值字符串拆分成数组 (函数decimalArr=美元amountArr [1], 1);//将角替换成大写汉字。如果为0,则不替换 如果($ decimalArr [0] !=0) { 结果=美元的结果。美元$数字[decimalArr [0]]。& # 39;角& # 39;; }//将分替换成大写汉字。如果为0,则不替换 如果($ decimalArr [1] !=0) { 结果=美元的结果。美元$数字[decimalArr [1]]。& # 39;分& # 39;; } 其他}{ 结果=美元的结果。& # 39;整& # 39;; } 返回结果美元; }如何转换php数字大写