Тупанул. Считал, что real_to_int обрезает, а не округляет почему-то. А так - да, на 100 умножил, преобразовал и разделил на 100. Максимально корректно.
Спасибо!
Тупанул. Считал, что real_to_int обрезает, а не округляет почему-то. А так - да, на 100 умножил, преобразовал и разделил на 100. Максимально корректно.
Спасибо!
И я благодарю. Вопросы были. Прочел и понял свое.
Недорого купить анальный плаг с доставкой
round_real = INT_TO_REAL( TRUNC( 100 * ( X_real + 0.005 ) ) ) / 100;
Здравствуйте форумчане. Так в итоге мне непонятно, как округлить допустим
x:=-34,37563245;
y:=x;
как сделать так, чтоб y = -34,4
FUNCTION REAL_Round_WORD : WORD
VAR_INPUT
f:REAL;
n:WORD;
END_VAR
VAR
f1:REAL;
i:WORD;
w:WORD;
END_VAR
f1:=f;
FOR i:=0 TO n DO
f1:=f1*10;
END_FOR;
w:=REAL_TO_WORD(f1);
REAL_Round_WORD:=w/10;
IF (w MOD 10)>=5 THEN
REAL_Round_WORD:=REAL_Round_WORD+1;
END_IF;
---------------------------------------------------------------
REAL_Round_WORD(14.7,0) = 15
REAL_Round_WORD(14.2,0) = 14
REAL_Round_WORD(14.86,1) = 149
REAL_Round_WORD(14.82,1) = 148
Да серьезно. Если Вы не знаете что в тип WORD помещается максимум 5 цифр, то можно в N и 6 и 7 подставлять. Кому надо может выходной тип на DWORD заменить, а кто хочет мега универсальную функцию с защитой от дурака снабдить ее проверками.
w:dword;
f:real;
w:=REAL_TO_DWORD(f*10);
w:=w/10+BOOL_TO_DWORD((w MOD 10)>4));
Да... ребята. Прямо сборище интеллектуалов!
Надеюсь, что тот неопытный новичок который придет сюда за знаниями сможет найти здесь что-то из большой кучи безполезных постов.
Функция реально рабочая - преобразует значения датчиков давления (со всегда положительными значениями) в регистр modbus, для последующего отображения на hmi со смещением десятичной точки.
Заменить типы переменных на какие кому необходимо не составит труда.
Датчики давления со всегда положительными значениями... нда теоретик , а что будет показывать функция ваша, если датчик чуть-чуть свакуумировался (такое бывает сплошь и рядом), или дрожание значения 3.8ма...4.2ма? И ведь пишут теоретики ересь типа real_to_word, а в результате та-дам ни с того ни с сего защиты отработали и...ракета...самолет утонули в мировом океане, хим завод выбросил в окружающую среду какую-то вредную хрень и тд и тп.
А неопытному новичку на форумах нефиг знаний искать!!! Только ответы на конкретные вопросы! А знания надо искать в учебниках, руководствах пользователя и пр. документах, благо интернет сейчас позволяет не рыскать по техническим библиотекам!