現在有個需求,從資料庫取出一大坨五位小數的數字,然後保留兩位小數。我用了round簡單處理了一下,發現諸如19.90000這樣的數字,會變成19.9而不是19.90。於是嘗試了一下用number format格式化,變成了19.90沒問題,但是還需要在前端,展示在extjs的gridpanel裡面。grid預設就支援排序,我點了排序,發現數字都是按照首字母排序的,也就是:
18.88
19.12
2.27
2.50
21.00
21.33
相當於是把數字用字串形式下的首字母進行了排序
我的問題就是:怎麼能用PHP處理一下,既保留兩位小數,還能轉換成數字格式,實話說我不確定PHP能不能支援這樣的形式,所以如果能用Extjs的某些配置實現,也非常感謝!
回複內容:
現在有個需求,從資料庫取出一大坨五位小數的數字,然後保留兩位小數。我用了round簡單處理了一下,發現諸如19.90000這樣的數字,會變成19.9而不是19.90。於是嘗試了一下用number format格式化,變成了19.90沒問題,但是還需要在前端,展示在extjs的gridpanel裡面。grid預設就支援排序,我點了排序,發現數字都是按照首字母排序的,也就是:
18.88
19.12
2.27
2.50
21.00
21.33
相當於是把數字用字串形式下的首字母進行了排序
我的問題就是:怎麼能用PHP處理一下,既保留兩位小數,還能轉換成數字格式,實話說我不確定PHP能不能支援這樣的形式,所以如果能用Extjs的某些配置實現,也非常感謝!
string number_format ( float $number [, int $decimals = 0 ] )
php的number_format返回的是string。
2個解決方案
1、直接number返回給前端,前端展示的時候格式化為2位小數
2、php格式化,但是原數值也返回給前端,用以排序
php 的 round() 函數
echo sprintf("%0.2f", "19.90000");