Округление числа до ближайшего целого
По правилам числа округляются до ближайшего целого числа,а если дробная часть числа равна 0.5, то число округляется вверх.
Решил таким способом, получил 100/100, но хотел бы избавиться от числа 1000000, так как при вводе числа x, 4999999 округляет вверх:
from math import *
x = float(input())
a = floor(x)
b = x - a
if (int(round(b, 1000000)*100)) < 50:
print(int(x))
elif (int(round(b, 1000000)*100)) == 50 or (int(round(b, 2)*100)) > 50:
print(ceil(x))
Ответы (2 шт):
Автор решения: Yaroslav
→ Ссылка
Если вам нужно округлять числа в определенную сторону то используйте следующие функции
А если вам нужно при определенном остатке округлять число в ту или иную сторону, то можете попробовать использовать остаток от деления(%) двух чисел и сравнивать уже по нему
math.ceil() – округление чисел в большую сторону
math.floor() – округление чисел в меньшую сторону
math.trunc() – отбрасывание дробной части
Автор решения: Victor VosMottor thanks Monica
→ Ссылка
def proper_round(num, dec=0):
num = str(num)[:str(num).index('.')+dec+2]
if num[-1]>='5':
return float(num[:-2-(not dec)]+str(int(num[-2-(not dec)])+1))
return float(num[:-1])