2012-08-11 95 views
1

我已經這樣做了計算:mysql,如何將長整型數字保存到longtext字段中?

$number = round(count($exc)/ count($grades),2,PHP_ROUND_HALF_UP); 

當保存,我必須將其保存到現有的表,它是一個LONGTEXT類型的字段。數字得到保存,但變得很長,像0.200000000000000011102230246251565404236316680908203125 我認爲這可能會導致額外的數據庫存儲。當我查詢這些數字時,它們仍然是2數字。所以,這是一個額外的轉換工作。我想了解如何將這些數字保存爲舍入數字?

+2

爲什麼要將**數字**作爲** longtext **字段存儲? – 2012-08-11 08:05:57

+0

你爲什麼使用文本類型來存儲數字數據? MySQL有許多數字數據類型(INT,NUMERIC,FLOAT等),爲什麼不使用其中之一?對你存儲的數據使用錯誤的類型最好是盜用你的靈活性,最壞的情況會導致SQL操作的結果不正確。如果您嘗試對它們進行排序,您將無法按照預期順序返回項目,例如 – GordonM 2012-08-11 08:06:09

+0

,因爲我必須將其保存到現有的表格中,該表格不適合我重新設計。 – Jenny 2012-08-11 08:06:48

回答

1

您可以使用PHP sprintf函數加上格式說明像這樣:

$number = sprintf("%.3f", round(count($exc)/ count($grades),2,PHP_ROUND_HALF_UP)); 

如果您需要有關看一看這裏http://it2.php.net/manual/en/function.sprintf.php sprintf的PHP文件的詳細信息。

+1

完美!感謝神奇的sprintf! – Jenny 2012-08-11 08:19:13

相關問題