Потеря точности при делении чисел
💻 Информатика · 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.
Кратко о главном
- Целочисленное деление отбрасывает дробную часть.
- Обычное деление даёт вещественный результат с дробью.
- Вещественные числа хранятся приближённо — отсюда потеря точности.
- Сравнивать дробные результаты лучше с небольшой погрешностью.