Беговой темп — это время, делённое на дистанцию. Для надёжного результата нужно явно указать единицу дистанции, полное время и округлять только готовое отношение.
Начните с двух известных величин
Для темпа разделите секунды на дистанцию и приведите к километру или миле. Для времени умножьте дистанцию на темп. Для дистанции разделите время на темп. Храните время в секундах до вывода, чтобы границы часа не терялись.
Нормализуйте дистанцию один раз
PaceCalc хранит дистанцию в целых микрометрах: километр равен 1 000 000 000 мкм, миля — 1 609 344 000 мкм. Поэтому 5 км — ровно 5 000 000 000 мкм. Оба вывода строятся из одной дистанции, а не из другого округлённого значения.
Округляйте вывод, а не формулу
Темп может содержать долю секунды. PaceCalc хранит её как сокращённую рациональную дробь, вычисляет скорость и отсечки и лишь затем округляет часы до секунды. Поэтому показанные 5:41 не умножаются обратно в ошибочное время полумарафона.