Когда обращаешься к округлению важно определить к какому случаю относится ситуация:
Для простого округления используйте встроенную функцию round(value, ndigits)
.
print round(2.3333, 1)
print round(2.3333, 2)
print round(2.3333, 3)
# 2.3
# 2.33
# 2.333
Помните, что выходное число будет всегда float.
print round(0.1234)
print round(1.22)
# 0.0
# 1.0
Важно учесть, что при пограничных значениях приоритет отдаётся нечётным числам
print round(6.65, 1)
print round(1.335, 2)
print round(1.355, 2)
# 6.7
# 1.33
# 1.35
Передаваемый параметр может быть отрицательным, в этом случае округление будет идти до десятков, сотен, тысяч и т.д.
print round(123456, -1)
print round(123456, -2)
print round(123456, -3)
# 123460.0
# 123500.0
# 123000.0
Для форматирования значений для вывода используйте format
:
print format(1.12345, '0.2f')
print format(2.1234, '1f')
print format(2.1234, '0.12f')
# 1.12
# 2.123400
# 2.123400000000
Можно провести эскперимент:
Python 2.7.10 (default, May 23 2015, 09:44:00) [MSC v.1500 64 bit (AMD64)] on win32
>>> 2.1 + 4.2
6.300000000000001
>>> print 2.1 + 4.2
6.3
Чтобы выйти за рамки стандарта представления чисел с плавающей точки используйте дополнительные модули, например decimal
.