Практика: расчёт скидки
Рассчитайте итог в копейках без float и запретите скидку вне диапазона.
discounted(int $amount, int $percent): intУсловие
amount неотрицателен, percent от 0 до 100. Результат округляется по явно выбранному правилу.
Тесты
0%, 100%, сумма 0, нечётное деление и оба недопустимых диапазона.
Подсказка
Сначала валидируйте контракт, затем вычисляйте. Объясните правило округления.
Критерий
Нет скрытого преобразования строк и отрицательных сумм; исключения предметны.
Локальный прогресс
Закрепите материал
Отметка, заметка, чек-лист и ответы остаются в localStorage этого браузера и не отправляются в аналитику.
- Контракт входа проверяется до вычисления.
- Пограничные случаи из условия воспроизводятся тестами.
- Решение не скрывает ошибку нестрогим преобразованием.
Связанные материалы
Источники и проверка
- PHP Documentation Group — структурный источник, без внешней ссылки
Последняя содержательная проверка: . Автор-разработчик Михаил Каржин. Методика качества контента.