您好,登錄后才能下訂單哦!
這篇文章主要介紹了php如何把一位數(shù)字轉(zhuǎn)為大寫的相關(guān)知識,內(nèi)容詳細易懂,操作簡單快捷,具有一定借鑒價值,相信大家閱讀完這篇php如何把一位數(shù)字轉(zhuǎn)為大寫文章都會有所收獲,下面我們一起來看看吧。
實現(xiàn)過程:
首先,需要知道數(shù)字的各個位數(shù)的名稱。比如:
數(shù)字 “0” 被稱為 “零”;
數(shù)字 “1” 被稱為 “壹”;
數(shù)字 “2” 被稱為 “貳”;
數(shù)字 “3” 被稱為 “叁”;
數(shù)字 “4” 被稱為 “肆”;
數(shù)字 “5” 被稱為 “伍”;
數(shù)字 “6” 被稱為 “陸”;
數(shù)字 “7” 被稱為 “柒”;
數(shù)字 “8” 被稱為 “捌”;
數(shù)字 “9” 被稱為 “玖”。
然后,需要知道數(shù)字的各個位數(shù)所代表的意義。一般而言,數(shù)字轉(zhuǎn)大寫的方法是,先將數(shù)字從個位往高位進行分解,并把每個位數(shù)轉(zhuǎn)化為大寫字母,再加上相應(yīng)的單位,如“萬”、“億”、“千”等等。在這個過程中需要注意的是,“零”的使用。
接下來,我們可以先把所需的數(shù)字做一次字符串化,使其成為一個字符串類型。我們可以使用 PHP 內(nèi)置的 str_split() 函數(shù)將字符串按位數(shù)分開,再倒序排列。然后使用 switch 語句進行判斷,轉(zhuǎn)換成大寫形式并加上相應(yīng)單位,存儲到一個數(shù)組中。最后把數(shù)組中的所有數(shù)相加即可。
示例代碼:
function convert_num_to_upper($num){
$str = strval($num); // 數(shù)字轉(zhuǎn)字符串
$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; // 上一位數(shù)是否為零,初始值為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;
}
}
這里就實現(xiàn)了將數(shù)字轉(zhuǎn)成大寫的方法。通過這個函數(shù),我們可以將任意長度的數(shù)字轉(zhuǎn)換成大寫形式。
關(guān)于“php如何把一位數(shù)字轉(zhuǎn)為大寫”這篇文章的內(nèi)容就介紹到這里,感謝各位的閱讀!相信大家對“php如何把一位數(shù)字轉(zhuǎn)為大寫”知識都有一定的了解,大家如果還想學(xué)習(xí)更多知識,歡迎關(guān)注億速云行業(yè)資訊頻道。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。