Rumah >pembangunan bahagian belakang >masalah PHP >Bagaimana untuk menukar satu digit kepada huruf besar dalam php

Bagaimana untuk menukar satu digit kepada huruf besar dalam php

PHPz
PHPzasal
2023-03-21 09:36:081460semak imbas

Menukar nombor kepada huruf besar adalah perkara yang agak mudah dalam PHP. Keperluan ini adalah perkara biasa, contohnya, apabila anda perlu memaparkan jumlah berangka dalam huruf besar pada invois atau penyata penyelesaian. Berikut ialah pelaksanaan PHP.

Proses pelaksanaan:

Pertama, anda perlu mengetahui nama setiap digit nombor tersebut. Contohnya:

Nombor "0" dipanggil "sifar";

Nombor "1" dipanggil "satu"; " dipanggil dipanggil "二";

nombor "3" dipanggil "三";

nombor "4" dipanggil "empat";

nombor "5" Ia dipanggil "五";

Nombor "6" dipanggil "Lu";

Nombor "7" dipanggil "柒";

Nombor "8" " dipanggil "lapan";

nombor "9" dipanggil "jiu".

Kemudian, anda perlu tahu apa yang diwakili oleh setiap digit nombor itu. Secara umumnya, kaedah menukar nombor kepada huruf besar adalah dengan terlebih dahulu menguraikan nombor daripada yang kepada tinggi, dan menukar setiap digit kepada huruf besar, ditambah dengan unit yang sepadan, seperti "sepuluh ribu", "ratus juta", " Beribu-ribu” dan seterusnya. Apa yang perlu diperhatikan dalam proses ini ialah penggunaan "sifar".

Seterusnya, kita boleh menyusun nombor yang diperlukan dahulu ke dalam jenis rentetan. Kita boleh menggunakan fungsi str_split() terbina dalam PHP untuk memisahkan rentetan mengikut digit dan kemudian menyusunnya dalam susunan terbalik. Kemudian gunakan pernyataan suis untuk membuat pertimbangan, tukarkannya kepada huruf besar dan tambah unit yang sepadan, dan simpannya dalam tatasusunan. Akhir sekali, tambah semua nombor dalam tatasusunan.

Kod contoh:

Berikut ialah cara menukar nombor kepada huruf besar. Dengan fungsi ini, kita boleh menukar nombor sebarang panjang ke dalam bentuk huruf besar.
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;
    }
}

Ringkasan:

Artikel ini memperkenalkan cara menukar nombor kepada huruf besar dalam PHP Idea teras adalah untuk membahagikan nombor mengikut digit, menukarnya kepada huruf besar satu demi satu dan Tambahan dengan unit yang sepadan, dan akhirnya dapatkan rentetan berangka dalam bentuk huruf besar. Pada masa yang sama, anda perlu memberi perhatian kepada penggunaan sifar untuk mengelakkan keluaran berulang yang tidak perlu.

Atas ialah kandungan terperinci Bagaimana untuk menukar satu digit kepada huruf besar dalam php. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn