Значащие цифры и округление

Урок о том, сколько цифр в результате реальны, а сколько — иллюзия точности от калькулятора.

Значащие цифры — все надёжные цифры числа плюс первая сомнительная. Они показывают, какую точность результат действительно несёт.

Калькулятор охотно выдаст 3,14159265 как результат деления, но если входные данные известны лишь до двух цифр, все эти знаки после третьего — самообман. Грамотная запись показывает ровно столько цифр, сколько оправдано точностью измерения.

Что считается значащей цифрой

Значащими считаются все цифры, кроме ведущих нулей. В числе 0,00420 значащие — 4, 2 и завершающий 0 (он показывает точность), то есть три значащих цифры. Ведущие нули лишь указывают положение запятой и не значащи.

Правило округления к чётному

При округлении «ровно половины» (когда отбрасывается …5000) есть тонкость. Привычное «округление вверх» систематически завышает суммы при массовой обработке. Поэтому в метрологии и в Python применяют округление к ближайшему чётному (банковское): 2,5 → 2, но 3,5 → 4. Это устраняет систематический сдвиг.

Как работает под капотом

Покажем, что встроенный round в Python использует именно округление к чётному, и почему это статистически честнее.

znacheniya = [0.5, 1.5, 2.5, 3.5, 4.5]
for z in znacheniya:
    print(z, "->", round(z))

# Почему к чётному: при массовом округлении нет систематического сдвига
chisla = [x + 0.5 for x in range(10000)]
k_chetnomu = sum(round(c) for c in chisla)
vsegda_vverh = sum(int(c) + 1 for c in chisla)
tochnaya_summa = sum(chisla)
print("Точная сумма:      ", tochnaya_summa)
print("Округление к чётн.:", k_chetnomu)
print("Округление вверх:  ", vsegda_vverh)

Вывод:

0.5 -> 0
1.5 -> 2
2.5 -> 2
3.5 -> 4
4.5 -> 4
Точная сумма:       50000000.0
Округление к чётн.: 50000000
Округление вверх:   50005000

Округление к чётному сохранило точную сумму, а «всегда вверх» завысило её на 5000. На больших массивах систематический сдвиг становится заметным — вот почему метрология предпочитает банковское округление.

Частые ошибки

  • Переписывать все цифры с калькулятора, создавая ложную точность.
  • Считать ведущие нули значащими (в 0,0042 значащих две, а с завершающим нулём — смотря как записано).
  • Округлять промежуточные результаты слишком рано — это накапливает ошибку; округляют только финальный ответ.

Итог

  • Значащие цифры — надёжные плюс одна сомнительная; ведущие нули не значащи.
  • Число значащих цифр отражает реальную точность измерения.
  • В метрологии и Python применяют округление к ближайшему чётному, без систематического сдвига.
  • Округляйте только финальный результат, не промежуточные.
Проверьте себя
1. Сколько значащих цифр в числе 0,00420?
Aдва
Bтри
Cпять
Dшесть
2. Чему равно round(2.5) в Python и почему?
A3, округление вверх
B2, округление к ближайшему чётному
C2, отбрасывание дробной части
D3, всегда от нуля