P
pro·school.ru
Каталог школ

Потеря точности при делении чисел

💻 Информатика · 8 класс

Потеря точности при делении чисел

Потеря точности — это ситуация, когда результат вычисления отличается от математически точного значения из-за особенностей хранения чисел в компьютере. Особенно часто это происходит при делении.

Два вида деления

В программировании различают целочисленное и обычное деление. Целочисленное отбрасывает дробную часть и даёт только целое частное. Обычное деление возвращает вещественное число с дробной частью.

ВыражениеТип деленияРезультат
7 div 2целочисленное3
7 mod 2остаток1
7 / 2обычное3.5

Откуда берётся неточность

Вещественные числа хранятся в памяти с ограниченным числом разрядов. Многие десятичные дроби нельзя точно представить в двоичной системе, поэтому, например, результат 1 / 3 хранится приближённо. При сравнении таких чисел могут возникать ошибки.

Опасно: если (a / 3) · 3 = a → может быть ложь
из-за округления в памяти.

Надёжно: сравнивать с маленькой погрешностью,
например |результат − ожидание| < 0.0001

Связь частного и остатка

Целочисленное деление и остаток связаны простым равенством. Зная частное и остаток, всегда можно восстановить исходное делимое.

делимое = делитель · частное + остаток

Проверка для 7 и 2:
2 · 3 + 1 = 7 ← верно

Остаток всегда меньше делителя. Это правило помогает проверить себя: если остаток получился больше или равен делителю, в вычислениях ошибка.

Когда что выбирать

Если нужно узнать, сколько целых раз одно число помещается в другом (например, число полных коробок), берут целочисленное деление. Если важна дробная часть (например, средняя оценка), используют обычное деление и помнят о возможной погрешности.

ЗадачаДеление
Сколько полных коробок по 12 предметовцелочисленное
Средний балл за четвертьобычное
Последняя цифра числаостаток от деления на 10

Округление вместо отбрасывания

Иногда дробный результат нужно превратить в целое не отбрасыванием, а округлением по правилам математики. Это разные действия: отбрасывание всегда уменьшает число, а округление выбирает ближайшее целое.

число 3.7
отбрасывание дробной части → 3
округление до ближайшего → 4

Выбор действия зависит от задачи. Для подсчёта числа полных автобусов берут отбрасывание, а для оценки среднего значения чаще применяют округление.

Частая ошибка: делить два целых числа обычным делением, ожидая целое, или наоборот применять целочисленное деление там, где нужна дробь. Из-за этого результат «8 / 5» может неожиданно оказаться 1 вместо 1.6.

Кратко о главном

  • Целочисленное деление отбрасывает дробную часть.
  • Обычное деление даёт вещественный результат с дробью.
  • Вещественные числа хранятся приближённо — отсюда потеря точности.
  • Сравнивать дробные результаты лучше с небольшой погрешностью.