Василий Кашуба http://www.owen.ru/forum/showthread....l=1#post220721 - Не работает с отрицательными числами похоже это Усреднение....
Замените элементы макросов и поставьте для значений с плавающей запятой, там же всё очень просто и понятно!
Среднее_1.PNG
Вместо SEL - FSEL и т. д.
Последний раз редактировалось Сергей0308; 22.09.2016 в 13:01.
Если проблему можно решить за деньги, это не проблема, это расходы. Бог каждому посылает проблемы по его силам. Так что одно из двух. Либо ты можешь-таки
справиться с проблемами, либо это не твои проблемы.
Спасибо, так и поступил.
Вспомнил слова 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
Если проблему можно решить за деньги, это не проблема, это расходы. Бог каждому посылает проблемы по его силам. Так что одно из двух. Либо ты можешь-таки
справиться с проблемами, либо это не твои проблемы.
Сергей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.
Если проблему можно решить за деньги, это не проблема, это расходы. Бог каждому посылает проблемы по его силам. Так что одно из двух. Либо ты можешь-таки
справиться с проблемами, либо это не твои проблемы.