Добрый день!
Спасибо за отзыв.
Работа над менеджером макросов запланирована.
Пока трудно говорить по срокам. Но эта одна из задач до конца года, над которой мы будем работать.
Вид для печати
Василий Кашуба http://www.owen.ru/forum/showthread....l=1#post220721 - Не работает с отрицательными числами похоже это Усреднение....
Замените элементы макросов и поставьте для значений с плавающей запятой, там же всё очень просто и понятно!
Вложение 26507
Вместо SEL - FSEL и т. д.
Спасибо, так и поступил.
Вспомнил слова rovki о том, что все должно быть прекрасно. В смысле если уж макрос оперирует с плавающей точкой, так как бы должен это делать всегда с плавающей точкой....
Удивился, что нет округлялки значений с плавающей точкой, может плохо искал и уже было ?
получилось вот такая ерунда, проверьте правильно ли работает ?
Если отбрасываемая цифра больше 5 то увеличивает на 1
Если отбрасываемая 5, а оставляемая четная, то не меняет последнюю, если нечетная то увеличивает.
Правда не городил огород с проверкой наличия цифр после 5-ки
Упрощенный вариант fRounde, соответствует округлению в Exel (без 3-его правила, см. ниже описание), подсмотрел у AI! как получать 1 и -1 :)
Вынужден с Вами не согласиться, только совсем недавно обсуждали, по моему вроде как разрулили или что не устраивает?
http://www.owen.ru/forum/showthread.php?t=9398&page=263
Вложение 26521
Сергей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-его правила и отрицательных чисел.
Так это же проще пареной репы, что бы округлить до n знаков, после запятой, попробуйте число предварительно умножить, а после округления разделить на 10 в n-ой степени!
Можно и все ваши другие хотелки реализовать, но Вам наверно потребуется признак чётности-нечётности числа, по моему, если на 2 делится без остатка, значит 100% чётное, наверно есть варианты!
Вложение 26549
Второй вход, для задания количества знаков после запятой!