2012-03-23 146 views
0

我只是想詢問是否有當用戶按下儲存按鈕,這個值可以存儲與一個逗號和小數點,如10,000.35PHP逗號和小數點格式

爲數字的PHP/MySQL的數據類型,它應該存儲在一個MySQL表中,系統可以檢索它也被處理爲數字10000.35

感謝您的任何幫助!

+3

只需在表示層解決它,不要改變它的存儲方式。 – Tadeck 2012-03-23 02:23:57

+2

使用['number_format()'](http://www.php.net/manual/en/function.number-format.php)顯示您從數據庫中獲取的值 – 2012-03-23 02:24:00

+0

感謝大家的有用答覆。 :) – MiD 2012-03-23 02:36:13

回答

2

這將是一個CHAR/string數據類型。

數字值沒有格式。它們只包含數值。逗號與數字計算無關。使用例如number_format格式化輸出上的值。這是逗號相關的唯一時間,它不需要存儲。

1

在MySQL中存儲沒有逗號的數字,只需在PHP中顯示數字時將其格式化即可。如果你在數學上做數學計算,那麼在PHP中不用逗號就可以更容易地保留數字 - 只有在顯示數據時才使用逗號!

0

最好將它存儲在你的MySQL數據庫中而不是的逗號,然後用PHP的number_format用逗號來顯示它。

這樣做的MySQL數據類型是DECIMAL。 DECIMAL爲您提供固定的小數位而不會出現浮點類型固有的精度錯誤。 (即123.45而不是123.4499999999999999)

+0

123.45爲DECIMAL,123.4499999999999999爲FLOAT,是否正確? – MiD 2012-03-23 02:29:39

+0

是的,我相信。 – Zed 2012-03-23 02:42:35

1

如果您打算存儲數值,最好將所有格式都保留在其外面。

例如,如果您需要本地化顯示器以使10,000.05需要爲10.000,05,該怎麼辦?你需要做很多工作。

您應該將該值存儲在數據庫中作爲10000.05,並使用number_format($myValue,2,'.',',');在時間顯示值。這將允許您將文字更改爲變量或常量,如果您需要進行本地化。它還將允許您配置您希望顯示的小數位數。

下面是number_format()

0

的PHP文檔你有2個選擇,使用MySQL直接或使用PHP格式化....見下面的例子

MySQL的直接解決方案

SELECT FORMAT(number, 2) as formatNumber FROM table ; 

PHP解決方案

number_format($number,2,'.',','); 

謝謝 :)