Ваши предложения, в смысле, какое должно быть значение, Вы наверно первую картинку посмотрели, на второй преобразование в INT32:
FLOAT_TO_INT_DINT_3.PNG
Если нет, может Вы какой другой код имели ввиду, кроме дополнительного кода бывает ещё прямой и обратный код, в одной из тем я макрос выкладывал, где тип кода можно выбирать!
Последний раз редактировалось Сергей0308; 29.03.2024 в 21:10.
Если проблему можно решить за деньги, это не проблема, это расходы. Бог каждому посылает проблемы по его силам. Так что одно из двух. Либо ты можешь-таки
справиться с проблемами, либо это не твои проблемы.
Естественно. Если учесть время моего ответа и вашего добавления
Позже еще посмотрю
Сергей верхний макрос INT-FLOAT считает не правильно, скрин 1 До переделки.jpg вот его модернизировал 1 Модернизация макроса.jpg
Перевод во FLOAT надо делать после вычитания, иначе теряется часть последних цифр. При чём на пределах -1 000 000, -10 000, -1000 разные цифры в конце.
Число 4294867296 это -100 000
Последний раз редактировалось kondor3000; 29.03.2024 в 22:54.
Тогда и у Вас неправильно, потому что цифры совпадают с моими!
И Вы не макрос модернизировали(что Вы нарисовали), а сделали другой макрос, в смысле обратную функцию, я писал, что в проекте есть и обратная функция, в смысле преобразование INT_TO_FLOAT:
INT_TO_FLOAT_8.PNG
И, обратно значения совпадают с вашими, короче, Вы на этом основываете свои заключения, что неправильно считает?
И, почему то всем лень по ссылке перейти и посмотреть, короче, чтобы никого не утруждать кишки и этого макроса:
INT_TO_FLOAT_9.PNG
Почти 2 года назад выложил!
Последний раз редактировалось Сергей0308; 29.03.2024 в 23:19.
Если проблему можно решить за деньги, это не проблема, это расходы. Бог каждому посылает проблемы по его силам. Так что одно из двух. Либо ты можешь-таки
справиться с проблемами, либо это не твои проблемы.
Прочитали бы пару строчек по ссылке, что я давал, что там написано:
Ссылка.PNG
Если проблему можно решить за деньги, это не проблема, это расходы. Бог каждому посылает проблемы по его силам. Так что одно из двух. Либо ты можешь-таки
справиться с проблемами, либо это не твои проблемы.
Переписал функции на ST, теперь они подходят для INT и для DINT 1 Функции DINT_FLOAT_DINT.jpg
Последний раз редактировалось kondor3000; 30.03.2024 в 20:11.
Посмотрел этот макрос, вот преобразование самого большого по модулю отрицательного числа:
INT_TO_FLOAT_10.PNG
Никакой погрешности там нет! Зачем было обманывать, мне не понятно в принципе!
Этот макрос для преобразования диапазона INT(INT16), для преобразования DINT(INT32) он не подходит!
Собственно для этого и усовершенствовал макрос, он чуть ниже, я его на скриншоте показывал(к которому у Вас претензий нет), он уже универсальный в смысле диапазона INT(INT16)/DINT(INT32), настройки в свойствах макроса!
Короче, не заметил настроек у вашего макроса, он универсальный или только диапазона DINT(INT32)?
Обычно используется диапазон INT(INT16), например во всех овенских ТРМ-ах!
Если проблему можно решить за деньги, это не проблема, это расходы. Бог каждому посылает проблемы по его силам. Так что одно из двух. Либо ты можешь-таки
справиться с проблемами, либо это не твои проблемы.