Heim  >  Artikel  >  Backend-Entwicklung  >  Wie konvertiere ich arabische Ziffern in chinesischen Großbuchstaben in PHP? (Codebeispiel)

Wie konvertiere ich arabische Ziffern in chinesischen Großbuchstaben in PHP? (Codebeispiel)

青灯夜游
青灯夜游nach vorne
2018-11-22 14:14:412942Durchsuche

Der Inhalt dieses Artikels besteht darin, vorzustellen, wie man in PHP arabische Ziffern in chinesische Großbuchstaben umwandelt. (Codebeispiel). Es hat einen gewissen Referenzwert. Freunde in Not können sich darauf beziehen. Ich hoffe, es wird Ihnen hilfreich sein.

Vorwort: Als ich an einem Angebotsanfragesystem für ein Außenhandelsunternehmen arbeitete, habe ich die Daten zum Betrag im Allgemeinen in Großbuchstaben umgewandelt, die von Banken verwendet werden Zeichnen Sie sie einfach hier auf

Codebeispiel:

/*
 * 数字金额转换成中文大写金额的函数
 * String Int  $num  要转换的小写数字或小写字符串
 * return 大写数字
 */
public 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 == '零元' || $m == '零万' || $m == '零亿' || $m == '零零') {
            $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) == '零') {
        $c = substr($c, 0, strlen($c)-3);
    }
    //将处理的汉字加上“整”
    if (empty($c)) {
        return "零元整";
    }else{
        return $c . "整";
    }
}
//echo num_to_rmb(23000000.00); //贰仟叁佰万元整

Zusammenfassung: Das Obige ist der gesamte in diesem Artikel vorgestellte Inhalt. Ich hoffe, dass er für das Lernen aller hilfreich ist. Weitere verwandte Video-Tutorials finden Sie unter: PHP-Tutorial!

Das obige ist der detaillierte Inhalt vonWie konvertiere ich arabische Ziffern in chinesischen Großbuchstaben in PHP? (Codebeispiel). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:cnblogs.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen