Здравствуйте, столкнулись с такой проблемой: блок округления периодически выдает не корректные значения.
Все правильно выдает.
Если не вдаваться особо в теорию:
Вы производите операцию округления вещественного числа до десятой.
Внутреннее представление вещественных чисел в 8и битных контроллерах ограничено 3 или 4 байтами (в зависимости от реализации математической библиотеки, которая производит вычисление).
Следовательно, вещественные числа и результаты операций над ними будут иметь погрешность. Что бы уменьшить погрешность применяют тип данных с двойной точностью, но он не реализован у нас по причинам отсутствия смысла. Одинарной точности вполне достаточно для задач, на которые рассчитаны наши контроллеры.
Значение 24.268 в идеальном округлении до десятой должно быть 24.3, но с учетом погрешности вычисления получается 24.2999
Более подробно об этих явлениях знает Google и Yandex