Home >Backend Development >PHP Problem >How to convert amount to uppercase in php

How to convert amount to uppercase in php

藏色散人
藏色散人Original
2020-10-29 09:40:123313browse

php method to convert amount to uppercase: first define the Chinese amount characters that need to be converted; then define the judgment conditions and loop out them, and convert them into Chinese characters in turn; then define the judgment conditions and calculate the converted Chinese characters The length is used as a judgment loop; finally, unnecessary characters are processed and complete Chinese characters are returned.

How to convert amount to uppercase in php

Recommended: "PHP Video Tutorial"

public static function num_to_rmb($num) {
           $c1 = "零壹贰叁肆伍陆柒捌玖";
           $c2 = "分角元拾佰仟万拾佰仟亿";
           //精确到分后面就不要了,所以只留两个小数位
           $num = round($num, 2);
           //将数字转化为整数
           $num = $num * 100;
           if (strlen($num) > 10) {    
                      return "金额太大,请检查";
           }
           $i = 0;
           $c = "";
           while (1) {    
                      if ($i == 0) {    
                                 //获取最后一位数字        
                                 $n = substr($num, strlen($num) - 1, 1);    
                      } else {        
                                 $n = $num % 10;    
                      }    //每次将最后一位数字转化为中文    
                      $p1 = substr($c1, 3 * $n, 3);    
                      $p2 = substr($c2, 3 * $i, 3);    
                      if ($n != '0' || ($n == '0' && ($p2 == '亿' || $p2 == '万' || $p2 == '元'))) {        
                                 $c = $p1 . $p2 . $c;    
                      } else {        
                                 $c = $p1 . $c;    
                      }    
                      $i = $i + 1;    
                      //去掉数字最后一位了    
                      $num = $num / 10;    
                      $num = (int) $num;    
                      //结束循环    
                      if ($num == 0) {        
                                 break;    
                      }
           }
           $j = 0;
           $slen = strlen($c);
           while ($j < $slen) {    
                      //utf8一个汉字相当3个字符    
                      $m = substr($c, $j, 6);    
                      //处理数字中很多0的情况,每次循环去掉一个汉字“零”    
                      if ($m == &#39;零元&#39; || $m == &#39;零万&#39; || $m == &#39;零亿&#39; || $m == &#39;零零&#39;) {        
                                 $left = substr($c, 0, $j);        
                                 $right = substr($c, $j + 3);        
                                 $c = $left . $right;        
                                 $j = $j - 3;        
                                 $slen = $slen - 3;    
                      }    
                      $j = $j + 3;
           }
           //这个是为了去掉类似23.0中最后一个“零”字
           if (substr($c, strlen($c) - 3, 3) == &#39;零&#39;) {    
                      $c = substr($c, 0, strlen($c) - 3);
           }
                      //将处理的汉字加上“整”if (empty($c)) {    
                      return "零元整";
           } else {    
                      return $c . "整";
           }
}

The return effect after conversion of this method is as follows

How to convert amount to uppercase in php

First define the Chinese amount characters that need to be converted

$c1 = "Zero One Two Three Four Five Lu Seven Eighty Nine";

$ c2 = "One hundred thousand yuan one hundred million yuan in cents";

The definition is as shown in the picture

How to convert amount to uppercase in php

##Then judge the accuracy of the amount

//精确到分后面就不要了,所以只留两个小数位
$num = round($num, 2);
//将数字转化为整数
$num = $num * 100;
if (strlen($num) > 10) {    
           return "金额太大,请检查";
}

How to convert amount to uppercase in php

Then define the judgment conditions and loop out, and convert them into Chinese characters in turn

$i = 0;
           $c = "";
           while (1) {    
                      if ($i == 0) {    
                                 //获取最后一位数字        
                                 $n = substr($num, strlen($num) - 1, 1);    
                      } else {        
                                 $n = $num % 10;    
                      }    
                      //每次将最后一位数字转化为中文    
                      $p1 = substr($c1, 3 * $n, 3);    
                      $p2 = substr($c2, 3 * $i, 3);    
                      if ($n != &#39;0&#39; || ($n == &#39;0&#39; && ($p2 == &#39;亿&#39; || $p2 == &#39;万&#39; || $p2 == &#39;元&#39;))) {        
                                 $c = $p1 . $p2 . $c;    
                      } else {        
                                 $c = $p1 . $c;    
                      }    $i = $i + 1;    
                      //去掉数字最后一位了    
                      $num = $num / 10;    
                      $num = (int) $num;    
                      //结束循环    
                      if ($num == 0) {        
                                 break;    
                      }
           }

How to convert amount to uppercase in php

Define the judgment conditions and convert the Calculate the length of Chinese characters as a judgment loop

$j = 0;
$slen = strlen($c);
while ($j < $slen) {    
           //utf8一个汉字相当3个字符    
           $m = substr($c, $j, 6);    
           //处理数字中很多0的情况,每次循环去掉一个汉字“零”    
           if ($m == &#39;零元&#39; || $m == &#39;零万&#39; || $m == &#39;零亿&#39; || $m == &#39;零零&#39;) {  
                      $left = substr($c, 0, $j);        
                      $right = substr($c, $j + 3);        
                      $c = $left . $right;        
                      $j = $j - 3;        
                      $slen = $slen - 3;    
           }    
           $j = $j + 3;
}

How to convert amount to uppercase in php

Finally process unnecessary characters and return complete Chinese characters

if (substr($c, strlen($c) - 3, 3) == &#39;零&#39;) {    
           $c = substr($c, 0, strlen($c) - 3);
}
//将处理的汉字加上“整”
if (empty($c)) {    
           return "零元整";
} else {    
           return $c . "整";
}

How to convert amount to uppercase in php

Notes

Pay attention to encoding issues during the conversion process

This method is only used to convert digital amounts into Chinese amounts

The above is the detailed content of How to convert amount to uppercase in php. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn