新聞中心
這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
php怎么實現(xiàn)金額和中文的轉(zhuǎn)化
本文操作環(huán)境:Windows7系統(tǒng),php7.4版,Dell G3電腦。

為肥西等地區(qū)用戶提供了全套網(wǎng)頁設(shè)計制作服務(wù),及肥西網(wǎng)站建設(shè)行業(yè)解決方案。主營業(yè)務(wù)為成都網(wǎng)站建設(shè)、成都做網(wǎng)站、肥西網(wǎng)站設(shè)計,以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務(wù)。我們深信只要達到每一位用戶的要求,就會得到認(rèn)可,從而選擇與我們長期合作。這樣,我們也可以走得更遠(yuǎn)!
php怎么實現(xiàn)金額和中文的轉(zhuǎn)化?
PHP 金額轉(zhuǎn)為中文大寫
代碼如下:
/**
* 將數(shù)值金額轉(zhuǎn)換為中文大寫金額
* @param $amount float 金額(支持到分)
* @param $type int 補整類型,0:到角補整;1:到元補整
* @return mixed 中文大寫金額
*/
public function convertAmountToCn($amount, $type = 1) {
// 判斷輸出的金額是否為數(shù)字或數(shù)字字符串
if(!is_numeric($amount)){
return "要轉(zhuǎn)換的金額只能為數(shù)字!";
}
// 金額為0,則直接輸出"零元整"
if($amount == 0) {
return "零元整";
}
// 金額不能為負(fù)數(shù)
if($amount < 0) {
return "要轉(zhuǎn)換的金額不能為負(fù)數(shù)!";
}
// 金額不能超過萬億,即12位
if(strlen($amount) > 12) {
return "要轉(zhuǎn)換的金額不能為萬億及更高金額!";
}
// 預(yù)定義中文轉(zhuǎn)換的數(shù)組
$digital = array('零', '壹', '貳', '叁', '肆', '伍', '陸', '柒', '捌', '玖');
// 預(yù)定義單位轉(zhuǎn)換的數(shù)組
$position = array('仟', '佰', '拾', '億', '仟', '佰', '拾', '萬', '仟', '佰', '拾', '元');
// 將金額的數(shù)值字符串拆分成數(shù)組
$amountArr = explode('.', $amount);
// 將整數(shù)位的數(shù)值字符串拆分成數(shù)組
$integerArr = str_split($amountArr[0], 1);
// 將整數(shù)部分替換成大寫漢字
$result = '';//前綴
$integerArrLength = count($integerArr); // 整數(shù)位數(shù)組的長度
$positionLength = count($position); // 單位數(shù)組的長度
for($i = 0; $i < $integerArrLength; $i++) {
// 如果數(shù)值不為0,則正常轉(zhuǎn)換
if($integerArr[$i] != 0){
$result = $result . $digital[$integerArr[$i]] . $position[$positionLength - $integerArrLength + $i];
}else{
// 如果數(shù)值為0, 且單位是億,萬,元這三個的時候,則直接顯示單位
if(($positionLength - $integerArrLength + $i + 1)%4 == 0){
$result = $result . $position[$positionLength - $integerArrLength + $i];
}
}
}
// 如果小數(shù)位也要轉(zhuǎn)換
if($type == 0) {
// 將小數(shù)位的數(shù)值字符串拆分成數(shù)組
$decimalArr = str_split($amountArr[1], 1);
// 將角替換成大寫漢字. 如果為0,則不替換
if($decimalArr[0] != 0){
$result = $result . $digital[$decimalArr[0]] . '角';
}
// 將分替換成大寫漢字. 如果為0,則不替換
if($decimalArr[1] != 0){
$result = $result . $digital[$decimalArr[1]] . '分';
}
}else{
$result = $result . '整';
}
return $result;
} 本文標(biāo)題:php怎么實現(xiàn)金額和中文的轉(zhuǎn)化
網(wǎng)站路徑:http://fisionsoft.com.cn/article/dpihhsg.html


咨詢
建站咨詢
