Цитата Сообщение от Валенок Посмотреть сообщение
Не совсем

Не только. Особенность целочисленных вычислений - абсолютная точность.
В целых никогда не будет x = (x + y) если y <> 0


int16 может только извне прилететь. А внутренним вычислениям все равно.


Да? А что тогда здесь udint а не uint? Нету противоречий?
В 16-ти битах было тесно даже 50лет назад. А необходимость 64-х битов даже сейчас - экзотика.


Оно есть только в 1 случае - если извне пришло int16. И оно 1 раз. Далее нет никакой необходимости выбирать между 16 и 32 и думать - влезут ли промежуточные вычисления в 16 бит. А к моменту когда вычисления не влезают в 32 бита, float уже давно положил на точность.


И Вам все равно надо это знать. Давайте не будем общую (мою и Вашу) часть проблем называть моей проблемой?


Вам кажется. Любое целое во флоат везде одинаково просто. Касаемо ST - я приводил выше эти 5 строк.


Я понимаю что ссылки по Вашим ссылкам доходят до "времен Очакова и покоренья Крыма" (практически буквально) - но ST какой никакой уже есть. Что касается частных случаев, то всё на ФБД и т.п графическом является частным случаем текстовых языков а не наоборот.
Так не надо так глубоко копать, так не мудрено дойти и до царя Гороха!
Короче, вот добавил в макрос преобразование INT в DINT и обратно и вход выбора типа данных, диапазона INT/DINT.
Если на входе выбрали INT, то на дополнительном выходе(что я добавил) преобразуется в DINT и обратно, если на входе выбрать DINT, то на выходе преобразуется в INT, если диапазон не превышать! Надеюсь, понятно объяснил?

INT_TO_FLOAT_11.PNG

INT_TO_FLOAT_5.owle