Длительность научилась делиться на длительность

29.12.2025

У длительности появился метод деления на другую длительность с округлением вниз или вверх.

Какая была запись

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

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

Что даёт метод

Одно действие вместо вычисления с двумя единицами измерения. Округление задаётся явно, поэтому «полных интервалов» и «округлённых вверх» не путаются.

Оригинал

Implement Duration::div_duration_{floor,ceil}

Упоминаний: 1 · Просмотров: 3