PHP數字價格格式化,保留兩位小數


我們需要將價格保留兩位小數比如12元需要表示為¥12.00,這時就需要使用number_format函數,使用方法為number_format(12,2),如果需要四舍五入,可以使用round函數配合。

number_format
格式化數字字串。

語法: string number_format(float number, int [decimals], string [dec_point], string [thousands_sep]);
傳回值: 字串
函式種類: 數學運算
內容說明
本函式用來將浮點參數 number 格式化。若沒加參數 decimals 則傳回的字串只要整數部份,加了此參數才依參數指定的小數點位數傳回。參 數 dec_point 表示小數點的表示方式方法,內定值是 ”.”,若需要轉換成其它的小數點就可以在這個參數改掉。參 數 thousands_sep 為整數部份每三位的分隔符號,內定值是 ”,”。本函式最特別的地方就是參數數目,最少要有一個,也就是欲格式化的字 串;也可以有二個或者四個參數,但不能用三個參數。值得注意的是指定小數點的位數之后的數字直接舍棄,沒有四舍五入的情形。

  描述
number

必需。要格式化的數字。

如果未設置其他參數,則數字會被格式化為不帶小數點且以逗號 (,) 作為分隔符。

decimals 可選。規定多少個小數。如果設置了該參數,則使用點號 (.) 作為小數點來格式化數字。
decimalpoint 可選。規定用作小數點的字符串。
separator

可選。規定用作千位分隔符的字符串。

僅使用該參數的第一個字符。比如 "xyz" 僅輸出 "x"。

注釋:如果設置了該參數,那么所有其他參數都是必需的。

例子:

?
1
2
3
4
5
6
7
<?php
   echo number_format( "1000000" );
   echo number_format( "1000000" ,2);
   echo number_format( "1000000" ,2, "," , "." );
   echo number_format( "1000000" ,2, "*" , "." );
   echo number_format( "1000000" ,2, "." , "" );
?>

 

輸出:

1,000,000
1,000,000.00
1.000.000,00
1.000.000*00
1000000.00

 

有意思的number_format
number_format(number,decimals,decimalpoint,separator)

有四個參數,

第一個和第二個參數是必須的,第三個和第四個是可選項。但實際測試中第三個和第四個這兩個參數必須同時存在,也就是要么都設置,要么都不設置。

沒有設置第三個和第四個參數:

Number_format(13526, 2); echo 13,526.00;

如果你將這處理后的數字去累加,則只會得到一個13!。

設置了第三個和第四個參數

?
1
Number_format(23125, 2, '.' , '' ); echo 23125.00;


這時再對這處理后的數字進行運算的話則會正確執行!

該函數的第三個參數表示 ‘小數點'位置用什么來表示,可以默認 . ,也可以設置成‘,'等其他符號。Ps:但我相信沒人會這么干。
第四個則表示每隔 千位時用什么來分割數字。如果沒什么特殊要求,又要進行運算的話最好設置為空。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM