Страницы: Пред. 1 2
RSS
Ошибка вычисления внутри ЕСЛИ()
 
прочитал, извините
но определение точности вылезет в отдельный расчет и это точно не короткая конструкция и писать такое реально лениво
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
Цитата
Ігор Гончаренко написал:
но определение точности вылезет в отдельный расчет
Согласен, обычно это делается "на глазок". При сложении миллиона чисел (сумм в валюте), дробные доли которых не имеют какой-либо определенной закономерности, погрешность может составить порядка 1000 (квадратный корень из числа слагаемых) единиц последнего разряда. Лишних 4 разрядов (1Е-6) хватает с запасом. При этом для целой части сумм в валюте мы резервируем 9 (15-6) знаков. Если суммы измеряются в миллиардах, то прикидывать нужно точнее (но в таких случаях копейки используются редко).
Впрочем, для объемных бухгалтерских расчетов тип double обычно не применяется. Например, в Oracle тип Number точно хранит свыше 30 десятичных разрядов.
Изменено: sokol92 - 30.11.2019 20:36:15
Владимир
 
Владимир, я знаю. Это я к вопросу точности (4 разряда).
Без учета гиперинфляции
Цитата
В среднем рулоне туалетной бумаги таких купюр 72 штуки. Таким образом, деньги использовать вместо туалетной бумаги выгоднее примерно в 277 раз!
 
Итак, пришло время использовать установления точности в соответствии с "отображаемой точностью":
Файл \ Параметры \ Дополнительно \ "При пересчете этой книги:” => ставить флажок "задать точность как на экране"
:)
https://support.office.com/ru-ru/article/%D0%97%D0%B0%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5-%D1%82%D0%BE%D1%...
 
А вот с этим очень аккуратно, ибо процесс необратимый и можно такого наломать во всей книге...
 
Цитата
ocet p написал:
Итак, пришло время
Нет, конец света еще не наступил.
 
... ещё долго, это правда

Как вам удалось установить количество нулей после десятичной запятой до 36, для числового формата в "C1/D1" ?
"Обычно" это только 30 (я имею дело со старыми версиями: 2k3, 2k7), или может быть, в новых "Excel" этот параметр расширенный ?

Редакт.:
Ну да ... не посмотрел на пользовательский формат ... : (

А как с этим делом справится у вас это (функция ОТБР = TRUNC ?) ?
Код
Sub abc_xyz()
    Range("C4").Formula = "=TRUNC(C1,36)" ' => ??? 'ОТБР' ???
    Range("D4").Formula = "=TRUNC(D1,36)" ' => ??? 'ОТБР' ???
    Range("E4").Formula = "=IF(ISBLANK(D4),""ОШИБКА"",C4-D4)"
    Range("E5").Formula = "=C4-D4"
    Range("G4").Formula = "=C4=D4"
    Range("E5,G4").NumberFormat = "General"
End Sub
Изменено: ocet p - 01.12.2019 02:52:18
 
Нашел авторитетное подтверждение:  Floating-Point Expressions Do Not Compare as Equal
Владимир
Страницы: Пред. 1 2
Наверх