Подскажите, пожалуйста, почему в ячейке, где должен быть "0" выдает ошибку.

0 голосов
28 просмотров

Подскажите, пожалуйста, почему в ячейке, где должен быть "0" выдает ошибку.


image

Информатика (19 баллов) | 28 просмотров
Дано ответов: 2
0 голосов
Правильный ответ

Это действительно не ошибка. Вспоминайте представление чисел в двоичном коде. Величину шага 0.2, например, точно представить невозможно, она выглядит как 0,0011001100110011...
Поэтому в результате сложения таких "неточных" чисел приходится отбрасывать младшие разряды. Но если для чисел, далеко отстоящих на числовой оси от нуля, при отбрасывании остаются значащие цифры в старших разрядах (0.2 = 0.199... 999 и 0.2=0.200...001, то для величин, близких к нулю, остается только сама погрешность. Её мы и видим и именно её Вы назвали ошибкой.

(142k баллов)
0 голосов

Это не ошибка. В ячейке записано очень маленькое число (5*10⁻¹⁷). В данном случае можно считать, что это и есть 0. Причина в том, что действия с вещественными числами выполняются в компьютере не точно, а с какой-то погрешностью. Очень маленькие и очень большие числа обычно записываются в экспоненциальном (научном) формате, в котором английская E отделяет мантиссу и порядок. Т.е. 5,5E-17 это 5,5*10⁻¹⁷

(194k баллов)