Maison  >  Article  >  développement back-end  >  Comment convertir un chiffre en majuscule en php

Comment convertir un chiffre en majuscule en php

PHPz
PHPzoriginal
2023-03-21 09:36:081401parcourir

La conversion des nombres en majuscules est une affaire relativement simple en PHP. Cette exigence est courante, par exemple, lorsque vous devez afficher des montants numériques en majuscules sur une facture ou un relevé de règlement. Voici une implémentation PHP.

Processus de mise en œuvre :

Tout d'abord, vous devez connaître les noms de chaque chiffre du numéro. Par exemple :

Le chiffre « 0 » s'appelle « zéro »

Le chiffre « 1 » s'appelle « un »

Le chiffre « 2 » s'appelle « deux » ; s'appelle

Le chiffre « 4 » s'appelle « 四 »

Le chiffre « 5 » s'appelle « 五 »

Le chiffre « 6 » s'appelle « Lu » ; « 8 » s'appelle « 捌 » ; le nombre « 9 » s'appelle « 玖 ».

Ensuite, vous devez connaître la signification de chaque chiffre du nombre. D'une manière générale, la méthode de conversion des nombres en majuscules consiste d'abord à décomposer le nombre des uns aux plus élevés, et à convertir chaque chiffre en une lettre majuscule, plus l'unité correspondante, telle que "dix mille", "cent millions", " Des milliers » et ainsi de suite. Ce qu'il faut noter dans ce processus, c'est l'utilisation du « zéro ».

Ensuite, nous pouvons d'abord chaîner le nombre requis pour en faire un type chaîne. Nous pouvons utiliser la fonction str_split() intégrée de PHP pour diviser la chaîne par chiffres, puis la trier dans l'ordre inverse. Utilisez ensuite l'instruction switch pour porter un jugement, convertissez-la en majuscules, ajoutez l'unité correspondante et stockez-la dans un tableau. Enfin, ajoutez tous les nombres du tableau.

Exemple de code :

function convert_num_to_upper($num){
    $str = strval($num); // 数字转字符串
    $len = strlen($str);

    $tmp_arr = array();
    switch ($len){
        case 2:
            $tmp_arr[2] = "拾";
            break;
        case 3:
            $tmp_arr[3] = "佰";
            $tmp_arr[2] = "拾";
            break;
        case 4:
            $tmp_arr[4] = "仟";
            $tmp_arr[3] = "佰";
            $tmp_arr[2] = "拾";
            break;
        case 5:
            $tmp_arr[5] = "万";
            $tmp_arr[4] = "仟";
            $tmp_arr[3] = "佰";
            $tmp_arr[2] = "拾";
            break;

        case 6:
        case 7:
        case 8:
            $tmp_arr[6] = "拾万";
            $tmp_arr[5] = "万";
            $tmp_arr[4] = "仟";
            $tmp_arr[3] = "佰";
            $tmp_arr[2] = "拾";
            break;

        case 9:
            $tmp_arr[9] = "亿";
            $tmp_arr[8] = "仟万";
            $tmp_arr[7] = "拾万";
            $tmp_arr[6] = "万";
            $tmp_arr[5] = "仟";
            $tmp_arr[4] = "佰";
            $tmp_arr[3] = "拾";
            break;

        default:
            break;
    }


    $result_arr = array();
    $num_arr = str_split($str);
    rsort($num_arr);

    $last_zero = false; // 上一位数是否为零,初始值为false
    foreach ($num_arr as $key => $num){
        switch ($num){
            case "0":
                if ($last_zero == true){
                    continue;
                } else {
                    $last_zero = true;
                    $result_arr[] = "零";
                }
                break;

            default:
                $last_zero = false;
                $result_arr[] = $this->num_to_upper($num) . $tmp_arr[$key+1];
                break;
        }
    }

    $result = implode("", $result_arr);

    return $result;
}


function num_to_upper($num){
    switch ($num){
        case "0":
            return "零";
            break;
        case "1":
            return "壹";
            break;
        case "2":
            return "贰";
            break;
        case "3":
            return "叁";
            break;
        case "4":
            return "肆";
            break;
        case "5":
            return "伍";
            break;
        case "6":
            return "陆";
            break;
        case "7":
            return "柒";
            break;
        case "8":
            return "捌";
            break;
        case "9":
            return "玖";
            break;
    }
}

Voici comment convertir les nombres en majuscules. Avec cette fonction, nous pouvons convertir un nombre de n’importe quelle longueur en majuscule.

Résumé :

Cet article présente comment convertir des nombres en majuscules en PHP. L'idée principale est de diviser les nombres par chiffres, de les convertir en majuscules un par un et de les compléter avec les unités correspondantes, et enfin d'obtenir les nombres. sous forme de chaîne majuscule. Dans le même temps, vous devez faire attention à l’utilisation du zéro pour éviter des sorties répétées inutiles.

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