• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

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

    Запись на курс до 25 апреля. Получить промодоступ ...

Проблема С Округлением

  • Автор темы rakot
  • Дата начала
R

rakot

Доброго времени суток,коллеги-довольно тривиальная проблема но опыта мало а вариантов решения очень много крутится в голове(и не факт что правильных)Дело в слудеющем:пишу модуль аналитического отчёта,есть там нюанс когда общее кол-во некоего материала(целое число) делится ровно на 4 части(по кварталам) так вот деление надо произвести правильно если к примеру 123 то толково вывести 31,31,31,30 но в то же время перекрыть ситуацию подобную скажем делению на 121(думал о приведении первых трёх к int а последнее roundить,но не вариант,видимо нужен некий синтез всех вариантов ),вообщем я думаю у опытных людей наработок на сию тему много-поделитесь,спасибо)
 
C

CSerX

Я думаю так, делишь как int, получается всегда округленное число к меньшему. и прибавляешь к каждому кварталу 1 если остаток деления больше или равен кварталу, т.е 123/4 = 30 и 3 в остатке, т.е. 1, 2, 3 квартал получают по +1. Если 122 то остаток 2 и тогда 1 и 2 квартал по +1. Если 120, то остаток 0 и соответственно ни где не добавляется.
 
R

rakot

толково,спасибо-всё оказалось проще чем я думал(пришла в голову мысль по поводу того что деля на 4 как money в первых трёх квараталах оставляю только целое число(каст в инт например) но перед этим забираю из них дробную часть которую прибавляю к четвёртому кварталу(в случае с тем же 123 выходит 30,30,30,33)) но в любом случае ваше решение несколько более элегантно,спасибо
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!