Страница 1 из 1
Преобразование Integer в Float
Добавлено: 23 фев 2024, 11:09
Ardudue
Блок конвертации Float в Integer есть в FlProg ,а Integer в Float не нашёл.
Может кому пригодится. На вход можно и Byte подавать, но я не пробовал.
Преобразование_Integer_в_Float_(FBD).ubi
Вариант от [ref]Naladchik[/ref] в версии FlProg 8.2.3
int to float.flp
Преобразование Integer в Float
Добавлено: 23 фев 2024, 20:54
Rovki
А можно просто умножить int на 1 float

Преобразование Integer в Float
Добавлено: 24 фев 2024, 09:47
Ardudue
Rovki писал(а): 23 фев 2024, 20:54
А можно просто умножить int на 1 float
а тут вопрос? - на какие действия процессор затратит меньше ресурсов на сложение или на умножение...
Преобразование Integer в Float
Добавлено: 24 фев 2024, 10:08
Phazz
[ref]Ardudue[/ref], а какую задачу решает этот блок? То есть в каких случаях нельзя подать int на вход float?
Преобразование Integer в Float
Добавлено: 24 фев 2024, 12:56
Ardudue
Phazz писал(а): 24 фев 2024, 10:08
в каких случаях нельзя подать int на вход float?
Блок PID регулятора не захотел работать когда на Set подал значение 300 в формате int. Работает только до 255.
Преобразование Integer в Float
Добавлено: 24 фев 2024, 15:17
Rovki
Ardudue писал(а): 24 фев 2024, 09:47
Rovki писал(а): 23 фев 2024, 20:54
А можно просто умножить int на 1 float
а тут вопрос? - на какие действия процессор затратит меньше ресурсов на сложение или на умножение...
Делал разные проекты и не заморачиваться с этим...
Преобразование Integer в Float
Добавлено: 24 фев 2024, 16:12
Naladchik
Ardudue писал(а): 24 фев 2024, 09:47
... действия ... меньше ресурсов ...
Ну, если уж говорить про ресурсы, то стоит учитывать и то, что при использовании данного блока расходуется память области переменных на 2 избыточные переменные (как минимум 6 байт) .
Преобразование Integer в Float
Добавлено: 25 фев 2024, 09:41
Ardudue
Naladchik писал(а): 24 фев 2024, 16:12
при использовании данного блока расходуется память области переменных на 2 избыточные переменные (как минимум 6 байт) .
искренне буду рад, если предложите своё решение, где уберете избыточные переменные

Преобразование Integer в Float
Добавлено: 25 фев 2024, 12:52
Naladchik
Ardudue писал(а): 25 фев 2024, 09:41
своё решение, где уберете избыточные переменные
int to float.flp
Преобразование Integer в Float
Добавлено: 25 фев 2024, 13:40
Ardudue
[ref]Naladchik[/ref], Ваш блок
Скетч использует 444 байт (1%) памяти устройства. Всего доступно 30720 байт.
Глобальные переменные используют 9 байт (0%) динамической памяти, оставляя 2039 байт для локальных переменных. Максимум: 2048 байт.
В ваш пример подставил мой блок
Скетч использует 444 байт (1%) памяти устройства. Всего доступно 30720 байт.
Глобальные переменные используют 9 байт (0%) динамической памяти, оставляя 2039 байт для локальных переменных. Максимум: 2048 байт.
Никакой разницы

Преобразование Integer в Float
Добавлено: 25 фев 2024, 14:13
Naladchik
Ardudue писал(а): 25 фев 2024, 13:40
Никакой разницы
В статике да, а при работе будет. Хоть и временно, но на эти переменные память выделять все равно придется.
Преобразование Integer в Float
Добавлено: 26 фев 2024, 06:05
kulibinsvv
Не вижу необходимости в таком блоке. Задача решается простым умножением.
Отправлено спустя 4 минуты 36 секунд:
Ну, или сложением. Ориентироваться по обстановке.
Отправлено спустя 5 минут 36 секунд:
Попытка создать лишние сущности никогда не приводила к положительным результатам. В качестве примера могу привести широко известный perpetuum mobile.
Преобразование Integer в Float
Добавлено: 26 фев 2024, 08:26
Ardudue
Naladchik писал(а): 25 фев 2024, 14:13
В статике да, а при работе будет. Хоть и временно, но на эти переменные память выделять все равно придется.
добавил Ваш вариант в первое сообщение присутствующим на выбор
Отправлено спустя 1 минуту 20 секунд:
kulibinsvv писал(а): 26 фев 2024, 06:05
Не вижу необходимости в таком блоке. Задача решается простым умножением.
Огород это хорошо

Преобразование Integer в Float
Добавлено: 26 фев 2024, 17:19
Phazz
Ardudue писал(а): 26 фев 2024, 08:26
Попытка создать лишние сущности никогда не приводила к положительным результатам.
По сути лишняя математическая операция а тем более с флоат является лишней сущностью. Этот блок исправляет недостаток флпрог правильно, а не с помощью костылей. Без рс триггеров тоже можно спокойно обойтись. Но однако они есть. Так почему бы не быть этому блоку? Человек благодаря флпрог немного углубился в изучение c++, создал блок. Это же прекрасно. Сейчас простой блок запилил, потом что-то посложнее сделает и более полезное. А вы сразу по рукам бьёте.