Длительность научилась делиться на длительность
29.12.2025У длительности появился метод деления на другую длительность с округлением вниз или вверх.
Какая была запись
Получить целое число интервалов из двух длительностей писали вручную: взять секунды одной, умножить на число единиц, взять наносекунды другой, учесть остаток. На дробной части почти всегда возникала ошибка — то ли округление, то переполнение при умножении.
Ошибка выглядит безобидно: частота таймера не изменилась, но периодические события стали сбиваться на единицу. На длинных интервалах это заметно, на коротких — почти нет, что делает ошибку трудной для обнаружения.
Что даёт метод
Одно действие вместо вычисления с двумя единицами измерения. Округление задаётся явно, поэтому «полных интервалов» и «округлённых вверх» не путаются.
Оригинал
Implement Duration::div_duration_{floor,ceil}
Упоминаний: 1 · Просмотров: 3