Maison  >  Article  >  développement back-end  >  Comment convertir le montant en majuscules en php

Comment convertir le montant en majuscules en php

藏色散人
藏色散人original
2020-10-29 09:40:123201parcourir

Comment convertir un montant en majuscules en PHP : définissez d'abord les caractères de montant chinois qui doivent être convertis ; puis définissez les conditions de jugement et bouclez-les, puis convertissez-les à leur tour en caractères chinois, puis définissez le jugement ; conditions et calcul des caractères chinois convertis. La longueur est utilisée comme boucle de jugement. Enfin, les caractères inutiles sont traités et les caractères chinois complets sont renvoyés.

Comment convertir le montant en majuscules en php

Recommandé : "Tutoriel vidéo PHP"

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 . "整";
           }
}

L'effet de retour après conversion de cette méthode est le suivant

Comment convertir le montant en majuscules en php

Définissez d'abord les caractères de montant chinois qui doivent être convertis

$c1 = "Zéro 1234 Wu Lu Qi 捌玖";

$ c2 = « Cent millions de yuans cent millions »

est défini comme indiqué dans la figure

Comment convertir le montant en majuscules en php

puis détermine l'exactitude du montant.

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

Comment convertir le montant en majuscules en php

Définissez ensuite les conditions de jugement et effectuez une boucle, et convertissez-les tour à tour en caractères chinois

$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;    
                      }
           }

Comment convertir le montant en majuscules en php

Définir les conditions de jugement et convertir la longueur de calcul du caractère chinois est utilisée comme boucle de jugement

$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;
}

Comment convertir le montant en majuscules en php

pour enfin traiter les caractères inutiles et renvoyer le caractère chinois complet

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

Comment convertir le montant en majuscules en php

Notes

Faites attention aux problèmes d'encodage lors du processus de conversion

Cette méthode n'est utilisée que pour convertir des montants numériques en montants chinois

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn