Вступить в клуб →
средняявопросLaravel: Eloquent, очереди и события

Сумма заказа в отчёте получается 10.199999999999999 вместо 10.20

В модели OrderItem задано protected $casts = ['price' => 'float'];, колонка в MySQL — DECIMAL(10,2). Итог заказа считается как $items->sum(fn ($i) => $i->price * $i->qty). В отчётах и чеках иногда появляются хвосты вроде 10.199999999999999.

Как считать деньги правильно?

  • Считать в копейках или десятичными строками без float
  • Округлять каждый результат через round(..., 2)
  • Изменить тип колонки на DOUBLE
  • Приводить цену к int, отбрасывая копейки

🔒 Проверка ответа — для участников клуба

  • Проверка ответа
  • Подсказка, если застряли
  • Разбор с объяснением, почему так
  • Прогресс по всем задачам и виртуальные собеседования
Зарегистрироваться →

Регистрация занимает минуту

Другие задачи раздела