我正在嘗試將數字0.0015存盤在資料庫中。我試過float,integer但我得到的零不是我輸入的確切數字。是否有可以存盤這樣一個值的資料型別?
uj5u.com熱心網友回復:
通常你會使用DECIMAL(又名NUMERIC),具有指定的比例和精度,這里是它的檔案。FLOAT也應該可以,但是您需要注意浮點算術的怪癖,因此DECIMAL是首選。
這是一個 dbfiddle 示例
如果您將資料視為 0,那么這可能是您插入方式的問題(可能是從檔案中匯入),或者您的客戶端將其四舍五入為 0,您需要對其進行調整。從上面的 dbfiddle 可以看出,它作業得非常好。
uj5u.com熱心網友回復:
這個數字 (0.0015) 不能用二進制表示。在 python 中查看以下示例:
Python 3.10.2 (tags/v3.10.2:a58ebcc, Jan 17 2022, 14:12:15) [MSC v.1929 64 bit (AMD64)] on win32
>>> x = 0.0015
>>> (x 1) - 1
0.0015000000000000568
這意味著在 mysql(或任何其他將數字轉換為二進制的語言)中的存盤將顯示表示錯誤。您可以使用不進行任何二進制轉換的數字型別,例如 decimal 或 numeric。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/466823.html
下一篇:SQL讀取多個表并自連接
