2014-02-12 13 views
0

我有一個外地在MySQL Decimal(10,2),我試圖插入像它1.1的浮點值。不幸的是,它將該值存儲爲1.10。我該如何存儲該值,因爲系統無法區分1.1和1.10。存儲十進制值,因爲它是在小數領域的MySql

由於某種原因,我不能改變的數據類型爲VARCHAR或字符串。在服務器端我使用PHP。

任何幫助將不勝感激。

+0

這似乎表示層關注 - 爲什麼不將數值保留爲數據庫中的十進制值,然後向用戶顯示數據時,將其轉換爲[float or rtrim it](http://stackoverflow.com/a/5149186/314291)(在PHP中)? 。 – StuartLC

+0

如果我使用float或rtrim函數,它將從1.1和1.10中捨棄0 1.1兩個條目都離開 – Ricky

+0

看來你試圖審計用戶輸入的內容(例如精度的確定性)。然後我會添加一個額外的'varchar'列來存儲這個,儘管對於所有的數字目的,我還會保留Decimal列。 – StuartLC

回答

0

你的規範Decimal(10,2)迫使它保存爲2地方小數。您可以使用另一種數據類型一樣漂浮,也可以使用rtrim在你的代碼修剪:

rtrim($value, 0); 
+0

如果我使用float數據類型,我認爲它不會工作,因爲它將1.1存儲爲1.1,而1.10存儲爲1.1,另一方面,如果我使用rtrim函數,它將從1.1和1.10中丟棄0 1.1兩個條目均爲 – Ricky

0

1.1和1.10都是相同或者你有其他任何規範

+0

完全不同,例如練習號1.1和1.10是不同的。 – Ricky

相關問題