國慶節後的第一個工作日,依舊是日常忙。各種需求猶如節後大爆發一樣 撲面而來。於是乎,忙於完成需求以及解決各類問題。但是,有顆好奇心的我,怎麼會僅僅滿足於完成需求,而不在其中找到一些有趣功能轉為實用的小工具呢。
數字金額轉人民幣/美元大寫的由來
電商、金融類網站是和錢打交道最多的,而電商類在處理訂單類更是需要對其進行列印清單,並要求對上面的金額不僅要求是數字,而且還需要人民幣數字大寫。設定多幣種的話,還需要轉成對應國家語言的數字金額。著實要花點精力、費點腦子。
實踐,匠人精神
於是,我既然在完成這個功能的基礎上,還是需要基於多種情況進行完善下。
先定義金額轉大寫 MoneyConvert類,然後
需要 數字金額轉人民幣大寫 就有了:
$money = '100050.23';
echo MoneyConvert::numbertowords(MoneyConvert::MONEY_TYPE_RMB,$money);
輸入金額:100050.23。轉換成大寫為: 壹拾萬零伍拾元貳角叄分
需要 數字金額轉美元大寫(美分表達):
$money = '100050.23';
echo MoneyConvert::numbertowords(MoneyConvert::MONEY_TYPE_DOLLAR,$money,'cents');
輸入金額:100050.23。轉換成大寫為: ONE HUNDRED THOUSAND,FIFTY AND CENTS TWENTY-THREE ONLY【美分表達(數字轉換到文字)】
需要 數字金額轉美元大寫(美點表達) :
$money = '100050.23';
echo MoneyConvert::numbertowords(MoneyConvert::MONEY_TYPE_DOLLAR,$money,'point');
輸入金額:100050.23。轉換成大寫為: ONE HUNDRED THOUSAND,FIFTY AND POINT TWENTY-THREE ONLY【美點表達(拼出大寫字母)】
最後是 數字金額轉美元大寫(分數表達法):
$money = '100050.23';
echo MoneyConvert::numbertowords(MoneyConvert::MONEY_TYPE_DOLLAR,$money,'fraction');
輸入金額:100050.23。轉換成大寫為: ONE HUNDRED THOUSAND,FIFTY AND TWENTY-THREE【分數表達法(只接受數字)】
總結
數字金額轉人民幣/美元大寫,本身可能不復雜。但是,確實實用。把金額轉人民幣/美元大寫結合場景,發散下思維就能寫出一個相對較全的功能。下次再用的時候就方便多了~
參考連結:
https://github.com/masonyang/smalltools