Баг в математических расчётах Excel, причины, методы фиксации
Создал таблицу для протокола контроля геометрии. Формула и сам баг представлены на скриншоте.
Именно в ситуации когда вылетает размер из левой ячейки, а справа именно значение "-0,41", при отображении двух знаков после запятой, в ячейку с формулой возвращается значение с огромной десятичной частью. Непонятно:
1) математическая история возникновения этой десятичной части, ведь по формуле при таких переменных должно было получиться "0,2/-0,01"
2) как это исправить.
Excel 2016 на рабочем компьютере ставился не мной, так что о лицензионности точно сказать не смогу.
неплохо было бы глянуть скрин значения E12 в строке формул
Ничего необычного
Формула и сам баг представлены на скриншоте.
Это - не баг. Кто-то просто не знает, как работает компьютер...
математическая история возникновения этой десятичной части, ведь по формуле при таких переменных должно было получиться "0,2/-0,01"
Объясняется просто : невозможно точно перевести вещественные числа в двоичную систему счисления ! Они всегда представлены в приблизительном виде.
Поэтому, при работе с вещественными числами, всегда нужно вручную отбирать значащие разряды и вручную же округлять. Или будет накапливаться ошибка.
Странный упрёк, что я не знаю как работает компьютер. Разные люди разбираются в разных темах в той или иной степени погружения. В любом случае, спасибо за разъяснение. Я все же буду считать это багом, так как данный результат в ячейке всплывает объективно непредсказуемо для юзера вроде меня. Опять же, у человека выше в версии 2010 года формула вернула предсказуемое значение. У меня же в другой таблице с другими номинальными и фактическими значениями, но при том же алгоритме (например 0,26/-0,26 с допуском 0,25, предсказуемый результат "0,01/-0,01") значение возвращается корректно. Поэтому и возник вопрос, почему конкретно в данном случае оно рассчиталось иначе. Если бы это был не баг, а то "как работает компьютер" была бы систематика таких результатов - при моём наблюдении её не было.
в формате ячейки задай количество нулей после запятой.
да