С mysql почти не работал. Какой тип данных лучше выбрать для чисел, имеющих какое-то кол-во знаков после запятой? Пример числа: 37.4044. Я так понял, в mysql несколько типов данных, которые подходят в данном случае. Но какой из них лучше выбрать?
Ответ
При работе с дробными значениями определите сначала для своей задачи требования к точности хранения и обработки.
Если для выражения вроде (0.1+0.7)*10 вам допустимо получить что-то вроде 7.9999999999999991118 вместо 8 - значит вы можете использовать стандарт IEEE754, т.е. типы данных float или double. Разница между ними в диапазоне хранимых значений. Изначально типы разрабатывались для научных нужд, где важна производительность, но сами величины в выражениях могут в некоторых пределах искажаться при вычислениях. Значения всё равно не точны из-за ограничений измерительной аппаратуры.
Если же речь идёт о, например, деньгах - то, разумеется, такие плавающие значения недопустимы и нужны типы данных с фиксированной запятой. Это decimal (так же известный как numeric) - вы при добавлении поля сами указываете, сколько знаков он может хранить и сколько из этих знаков являются дробной частью значения.
Комментариев нет:
Отправить комментарий