:.6 vs :.6fПри работе с числами в Python часто требуется выводить их в определённом виде: ограничивать количество знаков, округлять до заданной точности и т.п. Для этого используется форматирование строк — в частности, конструкция вида:
f"{число:формат}"
Разберём на примере задачи: нужно вывести угол поворота часовой стрелки с точностью до 6 знаков после запятой.
:.6
x = 1.008133333
print(f"{x:.6}")
👉 Результат:
1.00813
Что произошло?
:.6 означает "6 значащих цифр", а не 6 цифр после запятой.
Под "значащими" понимаются все цифры числа, включая те, что стоят до запятой.
Поэтому:
Для маленьких чисел (0.000123456) оно может переключиться на научную нотацию (1.23457e-04).
Для больших чисел дробная часть может почти исчезнуть, потому что на всё число выделяется лишь 6 знаков.
:.6f
x = 1.008133333
print(f"{x:.6f}")
👉 Результат:
1.008133
Что произошло?
:.6f означает "фиксированная точка, 6 цифр после запятой".
Независимо от того, какое число — маленькое или большое, до запятой или после — программа всегда выведет ровно 6 знаков после запятой.
| Выражение | Число | Результат |
| ---------------------- | ------------- | ------------------------------- |
| f"{30:.6}" | 30 | 30.0000 (6 значащих цифр) |
| f"{30:.6f}" | 30 | 30.000000 (6 после запятой) |
| f"{0.000123456:.6}" | 0.000123456 | 0.000123456 или 1.23457e-04 |
| f"{0.000123456:.6f}" | 0.000123456 | 0.000123 |
| f"{359.991667:.6}" | 359.991667 | 359.992 |
| f"{359.991667:.6f}" | 359.991667 | 359.991667 |
Если требуется ограничить количество значащих цифр (например, для краткой записи большого числа) → используем :.N.
Если требуется ровно N знаков после запятой (как в большинстве задач по программированию и математике) → используем :.Nf.
h = int(input())
m = int(input())
s = int(input())
angle = h * 30 + m * 0.5 + s / 120
print(f"{angle:.6f}")
0
2
1
1.008333
👉 Точно соответствует условию: ровно 6 цифр после запятой.
:.6 → ограничение по общему количеству значащих цифр.
:.6f → ограничение по количеству знаков после запятой.
В большинстве олимпиадных и учебных задач, где требуется "вывести с точностью до 6 знаков после запятой", правильный вариант — :.6f.