Спасибо, так и поступил.
Вспомнил слова rovki о том, что все должно быть прекрасно. В смысле если уж макрос оперирует с плавающей точкой, так как бы должен это делать всегда с плавающей точкой....
Удивился, что нет округлялки значений с плавающей точкой, может плохо искал и уже было ?
получилось вот такая ерунда, проверьте правильно ли работает ?
Если отбрасываемая цифра больше 5 то увеличивает на 1
Если отбрасываемая 5, а оставляемая четная, то не меняет последнюю, если нечетная то увеличивает.
Правда не городил огород с проверкой наличия цифр после 5-ки
Упрощенный вариант fRounde, соответствует округлению в Exel (без 3-его правила, см. ниже описание), подсмотрел у AI! как получать 1 и -1![]()
Последний раз редактировалось melky; 23.09.2016 в 09:28.
Вынужден с Вами не согласиться, только совсем недавно обсуждали, по моему вроде как разрулили или что не устраивает?
http://www.owen.ru/forum/showthread.php?t=9398&page=263
Округление.PNG
Если проблему можно решить за деньги, это не проблема, это расходы. Бог каждому посылает проблемы по его силам. Так что одно из двух. Либо ты можешь-таки
справиться с проблемами, либо это не твои проблемы.
При добавлении в проект сразу двух макросов, OL считает что такой макрос уже в проекте есть, хоть он и имеет другое имя, и не добавляет его, чтобы этого не происходило сохраняйте макрос через "Сохранить как новый макрос", тогда будет сгенерирован новый id, и макросы будут считаться разными.
С уважением, Ревака Юрий.
Инженер группы технической поддержки компании "ОВЕН"
e-mail: yu.revaka@owen.ru
Шаблон описания ошибки ПР или OL http://ftp-ow.owen.ru/softupdate/OWE...s/Shablon.docx
Видео уроки по ПР200 и OWEN Logic http://edu.owen.ru/series/pr200_rev/
Другие видеоролики по тематике ПР https://www.youtube.com/channel/UCj4...H5H3d_t6iDlQOQ
Сергей0308 не видел его, только не понял, где там округление до 2-х знаков после запятой ?
Получить хотел вот это, но в выложенном варианте немного ошибся...
Первое правило
Если первая из отделяемых цифр больше, чем число 5, то последняя из оставляемых цифр усиливается, иначе говоря, увеличивается на единицу. Усиление так же предполагается и тогда, когда первая из убираемых цифр равна 5, а за ней имеется одна или некоторое количество значащих цифр.
Число 25,863 округлённо записывается как – 25,9. В данном случае цифра 8 будет усилена до 9, так как первая отсекаемая цифра 6, больше чем 5.
Число 45,254 округлённо записывается как – 45,3. Здесь цифра 2 будет усилена до 3, так как первая отсекаемая цифра равна 5, а за ней следует значащая цифра 1.
Второе правило
В случае если первая из отсекаемых цифр меньше чем 5, то усиления не производится.
Число 46,48 округлённо записывается как – 46. Число 46 наиболее близко к округляемому числу, чем 47.
Третье правило
Если отсекается цифра 5, а за ней не имеется значащих цифр, то округление выполняется на ближайшее четное число, другими словами, последняя оставляемая цифра остаётся неизменной, если она четная, и усиливается в случае, если она нечетная.
Число 0,0465 округлённо записывается как – 0,046. В данном случае усиления не делается, так как последняя оставляемая цифра 6 является чётной.
Число 0,935 округлённо записывается как – 0,94. Последняя оставляемая цифра 3 усиливается, так как она является нечётной.
Ну и с минусами у меня тоже проблема
Обновил макрос. Округление вверх с учетом 3-его правила и отрицательных чисел.
Последний раз редактировалось melky; 22.09.2016 в 23:29.
Так это же проще пареной репы, что бы округлить до n знаков, после запятой, попробуйте число предварительно умножить, а после округления разделить на 10 в n-ой степени!
Можно и все ваши другие хотелки реализовать, но Вам наверно потребуется признак чётности-нечётности числа, по моему, если на 2 делится без остатка, значит 100% чётное, наверно есть варианты!
Округление с заданием количества знаков после запятой.PNG
Второй вход, для задания количества знаков после запятой!
Последний раз редактировалось Сергей0308; 23.09.2016 в 11:17.
Если проблему можно решить за деньги, это не проблема, это расходы. Бог каждому посылает проблемы по его силам. Так что одно из двух. Либо ты можешь-таки
справиться с проблемами, либо это не твои проблемы.
Добавил последние макросы в общий перечень первого сообщения, в группу аналоговые преобразования. Спасибо всем за участие.
С уважением, Ревака Юрий.
Инженер группы технической поддержки компании "ОВЕН"
e-mail: yu.revaka@owen.ru
Шаблон описания ошибки ПР или OL http://ftp-ow.owen.ru/softupdate/OWE...s/Shablon.docx
Видео уроки по ПР200 и OWEN Logic http://edu.owen.ru/series/pr200_rev/
Другие видеоролики по тематике ПР https://www.youtube.com/channel/UCj4...H5H3d_t6iDlQOQ
Извиняюсь, обновил вложение на архив. Теперь там оба макроса, простой и расширенный с 3-им правилом (его чуть подкорректировал, убрал лишние элементы за счет упрощения проверки)
Теперь можно загружать в проект оба Округлятора, простой и Ex - расширенный
Да, я с утра понял, что OL их по ID определяет, поэтому подправил.
Оба макроса с округлением вверх, по крайней мере округляет как Exel без явного указания как это делать.
Ревака Юрий , ссылку на файлик тогда подправите по возможности.
Ссылку исправил!
Последний раз редактировалось Ревака Юрий; 23.09.2016 в 09:41.
Наверное было нефик делать, раз сделал такое. Не знаю, было или не было. AND, OR, XOR для целочисленных значений до 32-х бит.
Работает в цикле, так что сильно не пинайте. Это скорее для вялотекущих процессов. На выходе держится предыдущее значение до конца цикла, количества указанных бит.
Изменение значения или битности перезапускает рассчет.
Начинал делать на простых Extract, Putbit но что-то показалось, что для 32-х бит такая простыня в макросе окажется, что решил сделать как сделал.