2016-09-27 68 views
0

我想將150.183502432.8392648這樣的東西插入到MySQL中,作爲float。問題是當我嘗試創建一個像FLOAT 3,7這樣的mySQL字段時,它不起作用。什麼是適當的格式?如何正確地將緯度和經度座標插入到mySQL float中?

這是我的錯誤:

An error occurred when trying to add the field 'location_lat' via 

ALTER TABLE `data` ADD `location_lat` FLOAT(3,7) 
NULL 
DEFAULT NULL 
AFTER `fees` 

MySQL said: For float(M,D), double(M,D) or decimal(M,D), 
M must be >= D (column 'location_lat'). 
+0

http://stackoverflow.com/questions/39612856/create-mysql-spatial-column-point-data-type-with-lat-long-without-using-alter/39613104#39613104 – e4c5

+0

7位小數就夠了區分一隻螞蟻。 (矯枉過正) –

回答

3

查看錯誤,因爲它說MySQL表示:對於float(M,d)... m必須> = d,並與您的查詢實際上應該是

ALTER TABLE `data` ADD `location_lat` FLOAT(7,3) 

經過MySQL Documentation On Floating-Point Types

的MySQL允許nonsta ndard語法:FLOAT(M,D)。這裏,(M,D)表示可以存儲總共多達M位的值,其中D位數 可以在小數點後面。

+0

現在它對我有意義。不早。必須睡覺。謝謝! :) – user1996496

3

第一個數字是小數點右側和左側的總位數。第二個數字是您想要在小數點右邊的位數。所以,你正在尋找:

ALTER TABLE `data` ADD `location_lat` FLOAT(10,7) 
+1

謝謝:)))) – user1996496

+1

正確答案應該是這樣的。浮動(10,7)不浮動(7,3)在下面 – SIDU

0

使用FLOAT(m,d),只需使用FLOAT。前者增加了一個額外的一輪,沒有購買任何東西。

A FLOAT在兩種情況下都需要4個字節。