首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 綜合知識

PHP number_format() 千分位格式化完全指南:參數陷阱與運算陷阱

     編輯:PHP 綜合知識

number_format() 將數字按千位分組格式化,支持自定義小數點與分隔符,但返回字符串不可直接參與數學運算。

語法與參數

number_format(float $number, int $decimals = 0, string $decimalPoint = ".", string $thousandsSep = ",")
  • 1 參數:無小數,逗號分隔(1,000,000)
  • 2 參數:指定小數位,點作小數點(1,000,000.00)
  • 4 參數:自定義小數點與千分位符(必須同時指定 3、4 參數)

示例輸出

echo number_format("1000000");       // 1,000,000
echo number_format("1000000", 2);    // 1,000,000.00
echo number_format("1000000", 2, ",", "."); // 1.000.000,00 (歐洲格式)

⚠️ 關鍵陷阱:格式化後不可直接運算

$n = number_format(13526, 2);  // "13,526.00"
echo $n + 100; // 輸出 13 (PHP 將 "13,526.00" 強制轉為 13)

$n = number_format(23125, 2, '.', ''); // "23125.00"
echo $n + 100; // 輸出 23225.00 (正常運算)

規則:若需後續運算,第 4 參數(千分位符)必須設置為空字符串 '',或運算前用 str_replace(',', '', $n) 清理。

參數詳解

  • decimalPoint:小數點字符(僅用首字符),默認 .
  • thousandsSep:千分位分隔符(僅用首字符),默認 ,
  • 不支持 3 參數調用(會報警告)

最佳實踐

  1. 僅在最終輸出顯示時使用 number_format
  2. 內部計算保持原始浮點數/整數
  3. 需自定義格式時:number_format($val, 2, '.', '') 保證可運算
  4. 金融級精度請使用 BCMath 或 GMP 擴展
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved