TGViewer
PHP Portal | Программирование PHP Portal | Программирование @phpgx · 4.64K subscribers
Post #151 2.62K
💻Как нам хранить числа с плавающей запятой в базе данных?

Для этого существует несколько типов данных:

MySQL: float, double, decimal
PostgreSQL: real, double, numeric

decimal и numeric — это одно и то же, как и float и real.

float (real)
Использует 4 байта памяти.
Хранится в двоичном (бинарном) формате, поэтому могут возникать небольшие неточности при выполнении арифметических операций или округлении.

double
Использует 8 байт памяти.
Хранится в двоичном формате, позволяет хранить большие числа по сравнению с float, а также обладает более высокой точностью. Однако все равно могут быть неточности.

decimal (numeric)
Использует переменное количество памяти. Например, DECIMAL(12, 6) использует 6 байт памяти.
Числа хранятся в бинарном формате отдельно для целой и дробной части, что позволяет точно хранить числа без потерь. Неточностей при вычислениях не возникает.

Вывод:

float|real:
🟢 высокая скорость вычислений;
🟢 занимает меньше памяти;
🔴 неточность.

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

double:
🟢 высокая скорость вычислений;
🟢 позволяет хранить более крупные числа и более точно, чем float;
🔴 занимает больше памяти;
🔴 неточность.

Использовать, если возможностей float недостаточно.

decimal|numeric:
🟢 высокая точность;
🔴 более низкая скорость вычислений;
🔴 занимает больше памяти (переменное количество).

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

👉 @PHPgx | #tips
  • 👍 14
  • ❤ 1
More from @phpgx
  1. Sep 21, 2026Совет по Laravel Все исходящие HTTP-ответы можно обрабатывать в одном месте с помощью Http…
  2. Sep 11, 2026Laravel tip Нужно получить все записи, кроме последних 5? skip() сам по себе игнорируется,…
  3. Sep 7, 2026В Laravel 13.30 появился удобный метод для Collection Использовали chunkWhile(), чтобы про…
  4. Sep 7, 2026PHP-совет В числовых литералах можно использовать подчёркивания, чтобы визуально группиров…
  5. Sep 2, 2026Он не из наших 👉 @PHPgx
  6. Aug 26, 2026TypePHP вышел в open source раньше запланированного 🎉 Изначально релиз исходников был нам…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →