Хранение десятичного числа с MySQL - PullRequest
2 голосов
/ 19 мая 2011

Какой лучший тип для хранения значений:

48.89384 и -2.34910

На самом деле я использую float.

Ответы [ 6 ]

5 голосов
/ 19 мая 2011

Используйте десятичные для точных значений.

Примечания:

  • ABS (широта) <= 90 </li>
  • ABS (долгота) <= 180 </li>

Так что вы можете нам 2 разных типа

  • Широта = десятичная (x + 2, x)
  • Долгота = десятичная (у + 3, у)

x и y будут желаемой точностью. Учитывая, что метр равен 1/40 000 000 от окружности Земли, будет достаточно что-то вроде 6-8, в зависимости от того, собираетесь ли вы на улицу или точную остановку на месте.

3 голосов
/ 19 мая 2011

Если вам нужно точное представление и вы знаете масштаб, который применяется, тогда вы можете использовать тип данных десятичного числа .

2 голосов
/ 19 мая 2011

@ MiniNamin
если вы используете sql, то он также будет работать, поместив DataType Numeric (18,4)

2 голосов
/ 19 мая 2011

Если вы работаете с деньгами, используйте тип DECIMAL.Нет точности с плавающей точкой.

0 голосов
/ 19 мая 2011

Это зависит от того, для чего вы используете цифры. Если эти числа широта и долгота, и если вам не нужны точные представления, то FLOAT будет работать. Используйте DOUBLE PRECISION для большей точности.

Но для точных представлений используйте DECIMAL или NUMERIC. Или INT или один из его различных размеров, если у вас никогда не будет дробей.

0 голосов
/ 19 мая 2011

Преимущество плавающей запятой заключается в том, что она может масштабироваться от очень маленьких до очень больших чисел. Однако цена этого заключается в том, что вы можете столкнуться с ошибками округления.

В случае, если вы точно знаете, какой уровень точности вам нужен, и будете работать в нем, предоставляемые вам числовые / десятичные типы часто оказываются более подходящими. Работая с уровнем точности, который вы указали при создании, они не встретят ошибок округления.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...