Как использовать арифметическое округление вместо банковского, и повысить точность расчётов? Вопросы тем, кто занимался серьёзными проектами. Как относиться к расчётам переменных float?import math print(math.tan(math.pi / 4)) # погрешность 1E-16 Может первый пример слишком жёсткий; можно привести что-нибудь попроще. Например в пределах сотых долей.print(1.2 - 1) # погрешность 4E-17 a = .1 * 3 # двойная точность? print(a, a == 0.3) # погрешность 4E-17 a = round(.1 * 6, 15) # погрешность 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 Листал руководство. Тестировал на интерпретаторе.
Для вычисления арифметического округления в Python можно использовать функцию round с указанием количества знаков после запятой, до которых нужно округлить. Вот пример:
a = 1.23 rounded_a = round(a, 1) # арифметическое округление до первого знака после запятой print(rounded_a) # выводит 1.2
Таким образом, указав необходимое количество знаков после запятой, вы можете получить более предсказуемый результат при округлении чисел типа float.
Для вычисления арифметического округления в Python можно использовать функцию round с указанием количества знаков после запятой, до которых нужно округлить. Вот пример:
a = 1.23rounded_a = round(a, 1) # арифметическое округление до первого знака после запятой
print(rounded_a) # выводит 1.2
Таким образом, указав необходимое количество знаков после запятой, вы можете получить более предсказуемый результат при округлении чисел типа float.