Не совсемВроде понял, что Вы хотите
Не только. Особенность целочисленных вычислений - абсолютная точность.В смысле всегда использовать один макрос DINT(INT32)_TO_FLOAT.
В целых никогда не будет x = (x + y) если y <> 0
int16 может только извне прилететь. А внутренним вычислениям все равно.Если надо преобразовать INT(INT16),
Да? А что тогда здесь udint а не uint? Нету противоречий?чаще всё-таки INT(INT16) встречается, а DINT(INT32) намного реже.
В 16-ти битах было тесно даже 50лет назад. А необходимость 64-х битов даже сейчас - экзотика.
Оно есть только в 1 случае - если извне пришло int16. И оно 1 раз. Далее нет никакой необходимости выбирать между 16 и 32 и думать - влезут ли промежуточные вычисления в 16 бит. А к моменту когда вычисления не влезают в 32 бита, float уже давно положил на точность.чем ваше промежуточное преобразование в DINT(INT32).
И Вам все равно надо это знать. Давайте не будем общую (мою и Вашу) часть проблем называть моей проблемой?Вам надо всё равно знать, что это INT(INT16),
Вам кажется. Любое целое во флоат везде одинаково просто. Касаемо ST - я приводил выше эти 5 строк.И, мне кажется в FBD проще значение INT(INT16) сразу преобразовать во FLOAT,
Я понимаю что ссылки по Вашим ссылкам доходят до "времен Очакова и покоренья Крыма" (практически буквально) - но ST какой никакой уже есть. Что касается частных случаев, то всё на ФБД и т.п графическом является частным случаем текстовых языков а не наоборот.Если Вы говорите в ST это проще, поверю Вам на слово(я в ST не шарю), но это получается частный случай, не более!