Heim >Backend-Entwicklung >PHP-Problem >So konvertieren Sie Betrag und Chinesisch in PHP

So konvertieren Sie Betrag und Chinesisch in PHP

藏色散人
藏色散人Original
2021-12-16 09:57:562800Durchsuche

So konvertieren Sie Betrag und Chinesisch in PHP: 1. Erstellen Sie eine PHP-Beispieldatei. 2. Konvertieren Sie den numerischen Betrag in chinesische Großbuchstaben mit „public function convertAmountToCn($amount, $type = 1) {...}“. .

So konvertieren Sie Betrag und Chinesisch in PHP

Die Betriebsumgebung dieses Artikels: Windows 7-System, PHP-Version 7.4, Dell G3-Computer.

Wie konvertiere ich Betrag und Chinesisch in PHP?

PHP Wandeln Sie den Betrag in chinesische Großbuchstaben um

Der Code lautet wie folgt:

/**
     * 将数值金额转换为中文大写金额
     * @param $amount float 金额(支持到分)
     * @param $type   int   补整类型,0:到角补整;1:到元补整
     * @return mixed 中文大写金额
     */
    public function convertAmountToCn($amount, $type = 1) {
        // 判断输出的金额是否为数字或数字字符串
        if(!is_numeric($amount)){
            return "要转换的金额只能为数字!";
        }

        // 金额为0,则直接输出"零元整"
        if($amount == 0) {
            return "零元整";
        }

        // 金额不能为负数
        if($amount < 0) {
            return "要转换的金额不能为负数!";
        }

        // 金额不能超过万亿,即12位
        if(strlen($amount) > 12) {
            return "要转换的金额不能为万亿及更高金额!";
        }

        // 预定义中文转换的数组
        $digital = array(&#39;零&#39;, &#39;壹&#39;, &#39;贰&#39;, &#39;叁&#39;, &#39;肆&#39;, &#39;伍&#39;, &#39;陆&#39;, &#39;柒&#39;, &#39;捌&#39;, &#39;玖&#39;);
        // 预定义单位转换的数组
        $position = array(&#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 = explode(&#39;.&#39;, $amount);

        // 将整数位的数值字符串拆分成数组
        $integerArr = str_split($amountArr[0], 1);

        // 将整数部分替换成大写汉字
        $result = &#39;&#39;;//前缀
        $integerArrLength = count($integerArr);     // 整数位数组的长度
        $positionLength = count($position);         // 单位数组的长度
        for($i = 0; $i < $integerArrLength; $i++) {
            // 如果数值不为0,则正常转换
            if($integerArr[$i] != 0){
                $result = $result . $digital[$integerArr[$i]] . $position[$positionLength - $integerArrLength + $i];
            }else{
                // 如果数值为0, 且单位是亿,万,元这三个的时候,则直接显示单位
                if(($positionLength - $integerArrLength + $i + 1)%4 == 0){
                    $result = $result . $position[$positionLength - $integerArrLength + $i];
                }
            }
        }

        // 如果小数位也要转换
        if($type == 0) {
            // 将小数位的数值字符串拆分成数组
            $decimalArr = str_split($amountArr[1], 1);
            // 将角替换成大写汉字. 如果为0,则不替换
            if($decimalArr[0] != 0){
                $result = $result . $digital[$decimalArr[0]] . &#39;角&#39;;
            }
            // 将分替换成大写汉字. 如果为0,则不替换
            if($decimalArr[1] != 0){
                $result = $result . $digital[$decimalArr[1]] . &#39;分&#39;;
            }
        }else{
            $result = $result . &#39;整&#39;;
        }
        return $result;
    }

Empfohlenes Lernen: „PHP-Video-Tutorial

Das obige ist der detaillierte Inhalt vonSo konvertieren Sie Betrag und Chinesisch in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn