阿拉伯數字轉中文
好久沒寫了,最近剛好用到一個財務上的金額由數字轉換為中文的內容,寫了個函數實現,記錄下:
class MoneyConstConfig { /** * 金额数字中文映射 */ public static $NUM_CH_MAP = array( 0 => '零', 1 => '壹', 2 => '贰', 3 => '叁', 4 => '肆', 5 => '伍', 6 => '陆', 7 => '柒', 8 => '捌', 9 => '玖', ); /** * 金额层次中文映射 */ public static $FINANCE_UNIT_MAP = array( 0 => '分', 1 => '角', 2 => '圆', 3 => '拾', 4 => '佰', 5 => '仟', 6 => '万', 7 => '拾', 8 => '佰', 9 => '仟', 10 => '亿', 11 => '拾', ); }
<?php class MoneyFinanceCommon { const MAX_FINANCE_LEN = 10; const FINANCE_SYMBOL = '¥'; const YUAN_POINT = '圆'; // 这里也写了配置,本来应该是统一的,但是因为这个文本基本不会变化,所以就这样写啦 const WAN_POINT = '万'; const YI_POINT = '亿'; /** * parseNumToArr 将数字转换位数组 * * @param double $num * @static * @access public * @return void */ public static function parseNumToArr($num) { return str_split($num); } /** * ticketFinanceChDesc 票据金额中文描述 * * @param double $sourceNum * @static * @access public * @return array( * '9' => '', // 仟万 * '8' => '', // 佰万 * '7' => '', // 拾万 * '6' => '', // 万 * '5' => '', // 仟 * '4' => '', // 佰 * '3' => '', // 拾 * '2' => '', // 圆 * '1' => '', // 角 * '0' => '', // 分 * ); */ public static function ticketFinanceChDesc($sourceNum) [67/1580] { $sourceNum = number_format($sourceNum, 2, '.', ''); // 保证金额是精确到分 $numArr = self::parseNumToArr($sourceNum); if (false !== ($key = array_search('.', $numArr))) { unset($numArr[$key]); } $rnumArr = array_reverse($numArr); $data = array(); $i = 0; foreach ($rnumArr as $num) { $data[$i++] = $num; } if ($i < self::MAX_FINANCE_LEN) { $data[] = self::FINANCE_SYMBOL; } $data = array_pad($data, self::MAX_FINANCE_LEN, ''); // 高位用空字符占位 $result = array_reverse($data); return $result; } [43/1580] /** * financeNumToCh * * @param double $sourceNum * @static * @access public * @return string $chAmount */ public static function financeNumToCh($sourceNum) { $sourceNum = number_format($sourceNum, 2, '.', ''); // 保证金额是精确到分 $numArr = self::parseNumToArr($sourceNum); if (false !== ($key = array_search('.', $numArr))) { unset($numArr[$key]); } $amount = array(); $numArrRev = array_reverse($numArr); $i = 0; foreach ($numArrRev as $num) { $amount[$i++] = $num; } $amount = array_reverse($amount, true); // 这里再一次反转目的是保证key 的顺序 $chAmount = self::convertNumArrToChStr($amount); return $chAmount; } /** [15/1580] * convertNumArrToChStr 将数字数组转换位中文数组 * * @param array $numArr 待转换的数字数组 * @static * @access public * @return string $chStr */ public static function convertNumArrToChStr($numArr) { $data = array(); $exists0 = false; // 是否存在0 $chStr = ''; $unitMap = array_flip(MoneyConstConfig::$FINANCE_UNIT_MAP); $yuan = $unitMap[self::YUAN_POINT]; $wan = $unitMap[self::WAN_POINT]; $yi = $unitMap[self::YI_POINT]; foreach ($numArr as $key => $num) { if ($num != 0) { if ($exists0 === true) { $chStr .= '零'; $exists0 = false; } $chStr .= MoneyConstConfig::$NUM_CH_MAP[$num] . MoneyConstConfig::$FINANCE_UNIT_MAP[$key]; } else { $exists0 = true; } if ($key == $yuan) { $chStr = rtrim($chStr, self::YUAN_POINT); $chStr .= self::YUAN_POINT; } elseif ($key == $wan) { $chStr = rtrim($chStr, self::WAN_POINT); $chStr .= self::WAN_POINT; } elseif ($key == $yi) { $chStr = rtrim($chStr, self::YI_POINT); $chStr .= self::YI_POINT; } } return $chStr; } }
以上就介紹了阿拉伯數字轉中文,包括了方面的內容,希望對PHP教程有興趣的朋友有所幫助。

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

許多用戶在選擇智慧型手錶的時候都會選擇的華為的品牌,其中華為GT3pro和GT4都是非常熱門的選擇,不少用戶都很好奇華為GT3pro和GT4有什麼區別,下面就給大家介紹一下二者。華為GT3pro和GT4有什麼差別一、外觀GT4:46mm和41mm,材質是玻璃鏡板+不鏽鋼機身+高分纖維後殼。 GT3pro:46.6mm和42.9mm,材質是藍寶石玻璃鏡+鈦金屬機身/陶瓷機身+陶瓷後殼二、健康GT4:採用最新的華為Truseen5.5+演算法,結果會更加的精準。 GT3pro:多了ECG心電圖和血管及安

為什麼截圖工具在Windows11上不起作用了解問題的根本原因有助於找到正確的解決方案。以下是截圖工具可能無法正常工作的主要原因:對焦助手已開啟:這可以防止截圖工具開啟。應用程式損壞:如果截圖工具在啟動時崩潰,則可能已損壞。過時的圖形驅動程式:不相容的驅動程式可能會幹擾截圖工具。來自其他應用程式的干擾:其他正在運行的應用程式可能與截圖工具衝突。憑證已過期:升級過程中的錯誤可能會導致此issu簡單的解決方案這些適合大多數用戶,不需要任何特殊的技術知識。 1.更新視窗與Microsoft應用程式商店應用程

標題:C#中使用Array.Sort函數對陣列進行排序的範例正文:在C#中,陣列是一種常用的資料結構,經常需要對陣列進行排序運算。 C#提供了Array類,其中有Sort方法可以方便地對陣列進行排序。本文將示範如何使用C#中的Array.Sort函數對陣列進行排序,並提供具體的程式碼範例。首先,我們要先了解Array.Sort函數的基本用法。 Array.So

在進行PHP編程時,我們常常需要將數組合併。 PHP提供了array_merge()函數來完成數組合併的工作,但是當數組中存在相同的鍵時,函數會覆寫原來的值。為了解決這個問題,PHP在語言中還提供了一個array_merge_recursive()函數,該函數可以合併數組並保留相同鍵的值,使得程式的設計變得更加靈活。 array_merge

在PHP中,有許多強大的陣列函數可以讓陣列的操作更加方便和快速。當我們需要將兩個陣列拼成一個關聯數組時,可以使用PHP的array_combine函數來實現這一操作。這個函數其實是用來將一個陣列的鍵當作另一個陣列的值,合併成一個新的關聯數組。接下來,我們將會講解如何使用PHP中的array_combine函數將兩個陣列拼成關聯數組。了解array_comb

第1部分:初始故障排除步驟檢查蘋果的系統狀態:在深入研究複雜的解決方案之前,讓我們先從基礎知識開始。問題可能不在於您的設備;蘋果的伺服器可能會關閉。造訪Apple的系統狀態頁面,查看AppStore是否正常運作。如果有問題,您所能做的就是等待Apple修復它。檢查您的網路連接:確保您擁有穩定的網路連接,因為「無法連接到AppStore」問題有時可歸因於連接不良。嘗試在Wi-Fi和行動數據之間切換或重置網路設定(「常規」>「重置」>「重置網路設定」>設定)。更新您的iOS版本:

php提交表单通过后,弹出的对话框怎样在当前页弹出php提交表单通过后,弹出的对话框怎样在当前页弹出而不是在空白页弹出?想实现这样的效果:而不是空白页弹出:------解决方案--------------------如果你的验证用PHP在后端,那么就用Ajax;仅供参考:HTML code

watch4pro和gt各自具有不使用的特點和適用場景,如果注重功能的全面性、高性能和時尚外觀,同時願意承擔較高的價格,那麼Watch 4 Pro可能更適合。如果對功能要求不高,更注重電池續航力和價格的合理性,那麼GT系列可能更適合。最終的選擇應根據個人需求、預算和喜好來決定,建議在購買前仔細考慮自己的需求,並參考各種產品的評測和比較,以做出更明智的選擇。
