PHP實(shí)現(xiàn)對(duì)數(shù)字分隔加千分號(hào)的方法
對(duì)于較大數(shù)字,添加千分號(hào)可以方便快速地讀出數(shù)值。千分號(hào)是指從最右邊開(kāi)始,每隔三位加個(gè)逗號(hào)。這種寫(xiě)法很廣泛,來(lái)源大概是因?yàn)橛⑽闹?Thousand,千、million,百萬(wàn)、billion,十億 都是隔三位的。在這里我們使用php實(shí)現(xiàn)數(shù)字格式化,數(shù)字每三位加逗號(hào)的功能函數(shù),具體如下:
number_format
摘自PHP官方文檔(PHP 4, PHP 5)
number_format — 以千位分隔符方式格式化一個(gè)數(shù)字
說(shuō)明
string number_format ( float$number [, int$decimals = 0 ] ) string number_format ( float$number , int$decimals = 0 , string $dec_point = '.' , string $thousands_sep = ',' )
本函數(shù)可以接受1個(gè)、2個(gè)或者4個(gè)參數(shù)(注意:不能是3個(gè)):
如果只提供第一個(gè)參數(shù), number 的小數(shù)部分會(huì)被去掉 并且每個(gè)千位分隔符都是英文小寫(xiě)逗號(hào)","
如果提供兩個(gè)參數(shù), number 將保留小數(shù)點(diǎn)后的位數(shù)到你設(shè)定的值,其余同樓上
如果提供了四個(gè)參數(shù), number 將保留decimals 個(gè)長(zhǎng)度的小數(shù)部分, 小數(shù)點(diǎn)被替換為 dec_point ,千位分隔符替換為 thousands_sep
參數(shù)
number
你要格式化的數(shù)字
decimals
要保留的小數(shù)位數(shù)
dec_point
指定小數(shù)點(diǎn)顯示的字符
thousands_sep
指定千位分隔符顯示的字符
function num_format($num){ if(!is_numeric($num)){ return false; } $num = explode('.',$num);//把整數(shù)和小數(shù)分開(kāi) $rl = $num[1];//小數(shù)部分的值 $j = strlen($num[0]) % 3;//整數(shù)有多少位 $sl = substr($num[0], 0, $j);//前面不滿(mǎn)三位的數(shù)取出來(lái) $sr = substr($num[0], $j);//后面的滿(mǎn)三位的數(shù)取出來(lái) $i = 0; while($i <= strlen($sr)){ $rvalue = $rvalue.','.substr($sr, $i, 3);//三位三位取出再合并,按逗號(hào)隔開(kāi) $i = $i + 3; } $rvalue = $sl.$rvalue; $rvalue = substr($rvalue,0,strlen($rvalue)-1);//去掉最后一個(gè)逗號(hào) $rvalue = explode(',',$rvalue);//分解成數(shù)組 if($rvalue[0]==0){ array_shift($rvalue);//如果第一個(gè)元素為0,刪除第一個(gè)元素 } $rv = $rvalue[0];//前面不滿(mǎn)三位的數(shù) for($i = 1; $i < count($rvalue); $i++){ $rv = $rv.','.$rvalue[$i]; } if(!empty($rl)){ $rvalue = $rv.'.'.$rl;//小數(shù)不為空,整數(shù)和小數(shù)合并 }else{ $rvalue = $rv;//小數(shù)為空,只有整數(shù) } return $rvalue; }
另外可以使用系統(tǒng)自帶的函數(shù) string number_format ( float number [, int decimals [, string dec_point, string thousands_sep]] )
:
echo number_format('169856420');
輸出結(jié)果將為:169,856,420
echo number_format('1000000',2);
輸出結(jié)果將為:1,000,000.00
echo number_format('1000000',2,',','.');
輸出結(jié)果將為:1.000.000,00
總結(jié)
以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對(duì)腳本之家的支持。如果你想了解更多相關(guān)內(nèi)容請(qǐng)查看下面相關(guān)鏈接
- PHP CURL使用詳解
- PHP設(shè)計(jì)模式之工廠模式(Factory Pattern)的講解
- 使用PHP反射機(jī)制來(lái)構(gòu)造"CREATE TABLE"的sql語(yǔ)句
- 啟用OPCache提高PHP程序性能的方法
- 在CentOS上安裝搭建PHP+Apache+Mysql的服務(wù)器環(huán)境
- CentOS下安裝Memcached和PHP Memcached擴(kuò)展
- PHP自動(dòng)生成縮略圖函數(shù)的源碼示例
- PHP添加文字水印或圖片水印的水印類(lèi)完整源代碼與使用示例
- PHP標(biāo)準(zhǔn)庫(kù)(PHP SPL)詳解
- PHP抽象類(lèi)與接口的區(qū)別詳解
相關(guān)文章
php.ini中date.timezone設(shè)置詳解
本文給大家分享的是php.ini中date.timezone設(shè)置的方法,非常的簡(jiǎn)單實(shí)用,有需要的小伙伴可以參考下2016-11-11Mysql數(shù)據(jù)庫(kù)操作類(lèi)( 1127版,提供源碼下載 )
Mysql數(shù)據(jù)庫(kù)操作類(lèi),學(xué)習(xí)php的朋友可以參考下。2010-12-12理清PHP在Linxu下執(zhí)行時(shí)的文件權(quán)限方法
下面小編就為大家?guī)?lái)一篇理清PHP在Linxu下執(zhí)行時(shí)的文件權(quán)限方法。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-06-06PHP回調(diào)函數(shù)及匿名函數(shù)概念與用法詳解
這篇文章主要介紹了PHP回調(diào)函數(shù)及匿名函數(shù)概念與用法,結(jié)合實(shí)例形式詳細(xì)分析了PHP回調(diào)函數(shù)及匿名函數(shù)的概念、功能、使用方法及相關(guān)操作注意事項(xiàng),需要的朋友可以參考下2018-03-03通過(guò)PHP的內(nèi)置函數(shù),通過(guò)DES算法對(duì)數(shù)據(jù)加密和解密
數(shù)據(jù)加密的基本過(guò)程就是對(duì)原來(lái)為明文的文件或數(shù)據(jù)按某種算法進(jìn)行處理,使其成為不可讀的一段代碼,通常稱(chēng)為密文,使其只能在輸入相應(yīng)的密鑰之后才能顯示出本來(lái)內(nèi)容,通過(guò)這樣的途徑來(lái)達(dá)到保護(hù)數(shù)據(jù)不被非法人竊取、閱讀的目的2012-06-06PHP/ThinkPHP實(shí)現(xiàn)批量打包下載文件的方法示例
最近因?yàn)楣ぷ鞯男枰鶕?jù)條件自動(dòng)打包供下載的功能,查找相關(guān)資料終于解決了,所以下面這篇文章主要給大家介紹了利用PHP或者ThinkPHP如何實(shí)現(xiàn)批量打包下載文件的方法示例,需要的朋友可以參考借鑒,下面來(lái)一起看看吧。2017-07-07PHP獲取搜索引擎關(guān)鍵字來(lái)源的函數(shù)(支持百度和谷歌等搜索引擎)
通過(guò)網(wǎng)站功能來(lái)增加一字段,獲取來(lái)源關(guān)鍵字,如何獲取來(lái)源關(guān)鍵字,代碼發(fā)在下面,里面包含(百度、谷歌、雅虎、搜狗、搜搜、必應(yīng)、有道)幾大搜索引擎的獲取方法,代碼中均注明,希望對(duì)你有幫助,分享一下2012-10-10php中文繁體和簡(jiǎn)體相互轉(zhuǎn)換的方法
這篇文章主要介紹了php中文繁體和簡(jiǎn)體相互轉(zhuǎn)換的方法,涉及php中數(shù)組簡(jiǎn)體繁體對(duì)照表的使用技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-03-03