Поиск  Пользователи  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Регистрация
Войти
 
Страницы: 1
RSS
Автоматическое округление полученного результата по вычисляемому параметру., Необходимо чтобы программа автоматически округлила число полученное при перемножении чисел
 
При перемножении чисел (ширина, длина, толщина) получается число 0,0091125 (в данном примере, при изменении исходных данных число будет меняться). Если это число поделить на 100, то получится 0,000091125, в котором вторая цифра не равная нулю (1) шестая по счету. После чего необходимо первое получившееся число (0,0091125) округлить до 6 знаков после запятой и умножить на количество. Возможно это изобразить одной формулой, с автоматическим округлением 0,0091125 до необходимого значения 0,009113?
 
=ОКРУГЛ(E17/1000*F17*G17/1000;6) - так подойдет? И еще: слово "ширина" пишется через "и".
 
Я знаю что пишется через И, некогда отслеживать орфографию. Так не пойдет, т.к. задано конкретное округление до 6, а второе чисо не равное нулю может быть как шестым так и третьим или восьмым. В общем это плавающая величина, которую и хотелось бы просчитывать формулой
 
Вариант:
Код
=ОКРУГЛ(J17;ДЛСТР(J18)-ДЛСТР(ПОДСТАВИТЬ(J18;"0";""))+1)


P.S. Раз знаете, так и пишите, чего вы людям головы морочите?
Кому решение нужно - тот пример и рисует.
 
=ОКРУГЛ((E17/1000*F17*G17/1000);6)*H17 - из вопроса
 
=ОКРУГЛ(J17;ДЛСТР(J18)-ДЛСТР(ПОДСТАВИТЬ(J18;"0";""))+1) - Эта формула подошла!!!!!!! Спасибо огромное за пытливый "ум"!!!!! :) :) :)
Что делает функция ДЛСТР?
 
Код
=ОКРУГЛ(RC[-5]*RC[-4]*RC[-3]*10^(-6);МАКС((10^(-СТРОКА(R1:R12))>=RC[-5]*RC[-4]*RC[-3]*10^(-6))*СТРОКА(R1:R12))+4)*RC[-2]
формула массива
Пытливый,
нули могут быть не только в начале, но в теле вычисленного значения (вот это 0.203040506 с какой точностью округлится?)
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
Про нули в середине я как-то да, упустил, спасибо.
ДЛСТР() вычисляет длину строки.
Кому решение нужно - тот пример и рисует.
 
Ігор Гончаренко, Ваша формула работает, но она еще сложне чем первая. Попытаюсь понять. Спасибо!
 
для чего прописывается -СТРОКА($1:$12)?
 
СТРОКА() возвращает номер строки
СТРОКА($1:$12) в массивном виде возвращает массив 1, 2, 3..... 12
Так формируется степень в которую возводим 10
Кому решение нужно - тот пример и рисует.
 
Спасибо всем, кто принял участие в решении этой задачи!!!!!!
 
И тут собрались лEнгвисты.
Напоминаю , есть такая функция, называет логорифм, а десятичный логарифм  он по основанию 10.  LOG10(0,1) = -1, Log10(0,01)=-2   мысль улавливаете?
INT(LOG10(X)) даст порядковый номер первой значящей цифры со знаком минус . Исходя из задачи,  надо округлить до второй знаяащей цифры после нулей (1-INT(LOG10(X)). Получаем простую формулу
Код
=ROUND(J17;1-INT(LOG10(J17/100)))

 
Изменено: БМВ - 20 Фев 2017 20:10:07
 
Цитата
БМВ написал:
И тут собрались лEнгвисты
Ага:
Цитата
БМВ написал:
логорифм
;)
 
Offtop

Юрий М Лень было все намеренные авделять :-) . Хотя призню ,и опечаток и ошибок у меня хватает и все по тому, что с прозводными и ннтригалами было всегда лучше чем падежами и склоненими. :-). Но согласитеть, формула то красивая. тут недавно делел, сюда применил просто.
 
Итак, после проверки работоспособности трех формул подвожу итоги:
формула, которую предложил Пытливый работает но не во всех случаях, поэтом применять её можно, но осторожно,
Ігор Гончаренко предложил формулу массива, она более наворочена, но считает правильно, и еще один минус - это формула массива
БМВ предложил простую формулу и она рабочая и не массив.
Получается что кто не боится массива тот можно использовать две последние формулы, или одну последнюю для всех.
Еще раз ОГРОМНОЕ спасибо всем кто принимал участие в решении данного вопроса. Вы мастера своего дела!
Страницы: 1
Читают тему (гостей: 1)
Наверх