Страница 1 из 3
Вычисления двойной точности
Добавлено: 12 мар 2023, 09:35
Ingwar
Блоки для вычислений точностью больше чем 7 разрядов (флоат).
Лучше использовать с 32-битными камнями.
Безымянный.png
математика double.ubl
Вычисления двойной точности
Добавлено: 12 мар 2023, 10:35
rw6cm
Ingwar писал(а): 12 мар 2023, 09:35
Блоки для вычислений точностью больше чем 7 разрядов (флоат).
Скажите каким образом в флпрог можно подать на вход ваших блоков число больше 4-5х знаков после запятой?
И как посмотреть точность вычислений больше чем 7 разрядов на выходе?
Вычисления двойной точности
Добавлено: 12 мар 2023, 10:46
Dryundel
rw6cm писал(а): 12 мар 2023, 10:35
Скажите каким образом в флпрог можно подать на вход ваших блоков число больше 4х знаков после запятой?
И как его посмотреть на выходе?
Думаю можно через конвертер строк.
Меня заинтересовал другой вопрос.
Ingwar писал(а): 12 мар 2023, 09:35
Лучше использовать с 32-битными камнями.
Что значит лучше? Может быть
ТОЛЬКО?
Для AVR double то же самое, что float.
Вычисления двойной точности
Добавлено: 12 мар 2023, 10:59
rw6cm
Dryundel писал(а): 12 мар 2023, 10:46
Думаю можно через конвертер строк.
Тогда проще сделать конвертер строк в double и не создавать кучу лишних переменных,
а блоки математики в флпрог не имеют своих переменных, и могут работать с любыми типами, даже с double.
Вычисления двойной точности
Добавлено: 12 мар 2023, 11:11
Dryundel
rw6cm писал(а): 12 мар 2023, 10:59
Тогда проще сделать конвертер строк в double и не создавать кучу лишних переменных,
Логично. Только не конвертер строк в double, а конвертер float в double и дальше обычными блоками математики пользоваться.
В противном случае надо еще и по всей алгебре такими блоками пробежаться.
Отправлено спустя 1 минуту 48 секунд:
И лучше сделать такой конвертер в PRO редакторе. Тогда вообще без лишних переменных обойдется.
Отправлено спустя 3 минуты 7 секунд:
А еще лучше, было бы, если бы Автор добавил недостающие типы переменных в FLProg в том числе еще и unsigned int.
Вычисления двойной точности
Добавлено: 12 мар 2023, 11:16
rw6cm
Dryundel писал(а): 12 мар 2023, 11:06
а конвертер float в double
Дело в том что в флпрог есть ограничение (округление float) до "разумного" числа. Автор как то давно писал, что нет смысла от длинных чисел float если точность выше 6 знаков ни какая. Это было давно когда еще не было есп, но по ходу оно действует и сейчас.
Так что float больше 5 знаков ввести через флпрог не получится
Вычисления двойной точности
Добавлено: 12 мар 2023, 11:18
Ingwar
rw6cm писал(а): 12 мар 2023, 10:35
Скажите каким образом в флпрог можно подать на вход ваших блоков число больше 4-5х знаков после запятой?
Ну вообще то разрядность это не числа после запятой...
rw6cm писал(а): 12 мар 2023, 10:35
И как посмотреть точность вычислений больше чем 7 разрядов на выходе?
Не понял вопроса.
Если блок не будет работать, то так и напишите, я вообще в этом не шарю... Че нападать то стразу с "подковыристыми" вопросами
Сделал как понимаю

Вычисления двойной точности
Добавлено: 12 мар 2023, 11:33
rw6cm
Dryundel писал(а): 12 мар 2023, 11:11
И лучше сделать такой конвертер в PRO редакторе. Тогда вообще без лишних переменных обойдется.
Такой делал
Здесь но отдельно его не выкладывал т.к не увидел возможности его применения.
Отправлено спустя 8 минут 16 секунд:
Ingwar писал(а): 12 мар 2023, 11:18
Если блок не будет работать, то так и напишите, я вообще в этом не шарю... Че нападать то стразу с "подковыристыми" вопросами
Не каких подковырестых вопросов, я как "начинающий пользователь" спросил простой вопрос, как подать на вход double?
или хотя бы где и как Вы их применяли?
Вычисления двойной точности
Добавлено: 12 мар 2023, 11:38
Ingwar
rw6cm писал(а): 12 мар 2023, 11:33
я как "начинающий пользователь" спросил простой вопрос как подать на вход double?
не...
я про это
rw6cm писал(а): 12 мар 2023, 10:35
И как посмотреть точность вычислений больше чем 7 разрядов на выходе?
а про то, что можно подать - вопрос к Автору)
Задачу ставил именно в повышении точности математической операции.
То, что на выходе мы можем потерять необходимые знаки после запятой уже не моя вина, точнее как это избежать - я не умею...
Вычисления двойной точности
Добавлено: 12 мар 2023, 11:41
Dryundel
Ingwar писал(а): 12 мар 2023, 11:18
Че нападать то стразу с "подковыристыми" вопросами
Ни кто особо не нападает. Это так, размышления в слух от [ref=#ff8000]rw6cm[/ref].
Ingwar писал(а): 12 мар 2023, 11:18
Сделал как понимаю
Необходимость в более точных вычислениях и в типе double, назрела уже давно. Жаль что приходится применять костыли для этого.
rw6cm писал(а): 12 мар 2023, 11:16
Дело в том что в флпрог есть ограничение (округление float) до "разумного" числа.
Есть такая беда. Ввести больше 5 знаков никак. Но получить в процессе вычисления можно.
Ну и конечно же Вы оказались прозорливей.
rw6cm писал(а): 12 мар 2023, 10:59
Тогда проще сделать конвертер строк в double
Так можно будет ввести и 15 знаков для double.
Вычисления двойной точности
Добавлено: 12 мар 2023, 11:45
Ingwar
Если я правильно понял ограничения программы, то например, если у нас результат вычислений равен 1,23456789 то мы теряем какие то цифры после запятой, а если 1234567,89 то верный расчет получим без потерь.
Отправлено спустя 2 минуты 23 секунды:
И хорош тут "умничать"
Вы многое сделали для пользователей, сделайте еще одно доброе дело.
Карма вас не забудет

Вычисления двойной точности
Добавлено: 12 мар 2023, 11:45
Dryundel
Ingwar писал(а): 12 мар 2023, 11:42
Если я правильно понял ограничения программы, то например, если у нас результат вычислений равен 1,23456789 то мы теряем какие то цифры после запятой
Нет. Не в этом ограничение. Попробуйте создать переменную с константой или ввести константу на вход какого нибудь блока. Лишние знаки обрежутся.
Вычисления двойной точности
Добавлено: 12 мар 2023, 11:47
Ingwar
Dryundel писал(а): 12 мар 2023, 11:45
Нет. Не в этом ограничение. Попробуйте создать переменную с константой или ввести константу на вход какого нибудь блока. Лишние знаки обрежутся.
Я про ограничения применимо к своим блокам.
Вычисления двойной точности
Добавлено: 12 мар 2023, 11:49
Dryundel
Ingwar писал(а): 12 мар 2023, 11:47
Я про ограничения применимо к своим блокам.
Ну вот и попробуйте ввести на вход вашего блока 0.123456789. Станут понятны ограничения.
Вычисления двойной точности
Добавлено: 12 мар 2023, 11:51
rw6cm
Ingwar писал(а): 12 мар 2023, 11:47
Я про ограничения применимо к своим блокам.
Смысла от блоков нет, если мы не можем работать с такими числами.
2023_03_12_11_30_26_COM3.png
Вычисления двойной точности
Добавлено: 12 мар 2023, 11:53
Ingwar
Dryundel писал(а): 12 мар 2023, 11:49
Ну вот и попробуйте ввести на вход вашего блока 0.123456789. Станут понятны ограничения.
Андрей, это уже настораживает...
Привычка читать посты по диагонали
Отправлено спустя 1 минуту 18 секунд:
rw6cm писал(а): 12 мар 2023, 11:51
Смысла от блоков нет, если мы не можем работать с такими числами.
перенесите запятую вправо на 7 знаков
Вычисления двойной точности
Добавлено: 12 мар 2023, 12:01
Dryundel
Ingwar писал(а): 12 мар 2023, 11:53
перенесите запятую вправо на 7 знаков
А какой смысл тогда вообще связываться с плавающей точкой?
Перенесите запятую на 15 знаков и вот уже целочисленное вычисление, которое легче и быстрей.
Вычисления двойной точности
Добавлено: 12 мар 2023, 12:13
Ingwar
[ref=#ff8000]Dryundel[/ref], [ref=#ff8000]rw6cm[/ref], признаю - обрезали вы мне крылья, в этом виде ПБ бессмыслены...
Отправлено спустя 1 минуту 10 секунд:
И как теперь сука с этим жить

Вычисления двойной точности
Добавлено: 12 мар 2023, 12:19
rw6cm
Ingwar писал(а): 12 мар 2023, 11:53
перенесите запятую вправо на 7 знаков
Вы сами посмотрите что будет
2023_03_12_12_14_26_COM3.png
Сравнение вычислений float double.flp
Вычисления двойной точности
Добавлено: 12 мар 2023, 12:26
Ingwar
rw6cm писал(а): 12 мар 2023, 12:19
Вы сами посмотрите что будет
Но стоит записать результат расчета в перемененную Flprog, то карета превращается в тыкву
