Вопросы тем, кто занимался серьёзными проектами. Как относиться к расчётам переменных
float?
import math
print(math.tan(math.pi / 4)) # погрешность 1E-16
Может первый пример слишком жёсткий; можно привести что-нибудь попроще. Например в пределах сотых долей.
print(1.2 - 1) # погрешность 4E-17
a = .1 * 3 # <class 'float'> двойная точность?
print(a, a == 0.3) # погрешность 4E-17
a = round(.1 * 6, 15) # <class 'float'> погрешность 1E-16
print(a, a == 0.6) # погрешность -> 0
И конечно же, используя костыль через функцию
round хотелось бы получать предсказуемость результата. Поэтому, есть какая-нибудь функция для вычисления арифметического округления?
list = [2 + float(i) / 100 for i in range(5, 96, 10)] # 2.05 - 2,95
round = [round(i, 1) for i in list] # Банковское округление [0,1,2*,5,6]
# * Несоотвествие с арифметическим округлением только в Python 3.3
Листал
руководство. Тестировал на
интерпретаторе.