我在MySQL中存儲值時遇到了一個非常奇怪的問題。前提:PHP float/double存儲爲MySQL DECIMAL
我有一個使用DECIMAL(15,8)
存儲貨幣值(如總的順序)的表,但是當我嘗試插入例如:
2,45545345
這個存儲爲
2.00000000
我試過MySQL的FORMAT/CAST函數,但仍然是相同的輸出。
這是查詢獲取如何產生的:
$db->query("INSERT INTO `random_table_name` SET currency_value = '" . floatval($value) . "'");
我也嘗試doubleval
,但同樣的結果。有趣的是,雖然這段代碼在幾周前運行良好,但我不記得任何可能導致此結果的db結構或db類的更改。
您的腳本是否使用'setlocale'? –
是的,但我無法關閉它或刪除它。 – Anonymous
它是什麼語言環境? 'floatval'會根據語言環境將''2,45545345「'轉換爲'2.0'或'2.45545345'。 –