2016-09-27 7 views
0

Я пытаюсь вставить что-то вроде 150.1835024 и 32.8392648 в mySQL как float. Проблема в том, что когда я пытаюсь создать поле mySQL, например, FLOAT 3,7, он не работает. Каков правильный формат?Как правильно вставить координаты широты и долготы в 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 знаков после запятой достаточно чтобы отличить одного муравья от другого. (Overkill.) –

ответ

3

Посмотрите на ошибки, как он говорит MySQL сказал: для поплавка (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

Правильный ответ должен быть таким. float (10,7) не плавают (7,3) ниже – SIDU

0

ли не использование FLOAT(m,d), просто используйте FLOAT. Первый добавляет дополнительный раунд, который ничего не покупает.

A FLOAT занимает 4 байта в любом случае.