?Цитата:
IF ABS( Real_X ) < 0.1 THEN
REAL_TO_STRINGF := '0.0';
RETURN;
END_IF;
0.07 => 0.1
Вид для печати
?Цитата:
IF ABS( Real_X ) < 0.1 THEN
REAL_TO_STRINGF := '0.0';
RETURN;
END_IF;
0.07 => 0.1
Да, знаю. Это не "округление" в математическом смысле, а просто отбрасываем все, что после десятых. Для поставленной задачи это более чем достаточно.
Мне нужно передать информацию по смс более точную чем сейчас я передаю в целых. :)
На основе этой информации ПЛК не производит управление. Чисто визуализация.
OSCAT-овская функция REAL_TO_STRF, ее код выше http://www.owen.ru/forum/showthread....l=1#post110112, как раз таки производит именно математическое округление, а не отбрасывание знаков после запятой.
Я посмотрел. Согласен, но ее ресурсоемкость не соизмерима. При всем, что нет таких требований. Во всем разумная необходимость д.б.
Цитата:
Потребовалось округление до 1 знака после запятой.
Вы бы тоже определилисьЦитата:
Это не "округление" в математическом смысле, а просто отбрасываем все,
Тоже вариант. Просто еще со студенческой скамьи помню, что операции умножения и деления (особенно чисел с плавающей точкой) довольно трудоемки для процессоров. Позже еще появились математические сопроцессоры, которые и выполняли данные операции. А While это всего лишь целочисленный счетчик.
(Ну это я так думаю, хотя могу и ошибаться. Давно с IT и программированием не сталкивался).
Практически одинаково по времени получилось
https://lh4.googleusercontent.com/-5.../testround.jpg