Archived

Этот пост заблокирован, редактирование отключено

Программное обеспечениеВопросы по zWorkbenchБлок округления

Вопросы по системе сквозного проектирования и менеджмента проектов
Исходное сообщение:
Kach, 21.09.2016, 12:10
Kach
Блок округления
  Здравствуйте, столкнулись с такой проблемой: блок округления периодически выдает не корректные значения.
Ответы:
mike, 21.09.2016, 14:46
mike
Блок округления
Все правильно выдает.

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

Значение 24.268 в идеальном округлении до десятой должно быть 24.3, но с учетом погрешности вычисления получается 24.2999

Более подробно об этих явлениях знает Google и Yandex