Нашли или выдавили из себя код, который нельзя назвать нормальным,
на который без улыбки не взглянешь?
Не торопитесь его удалять или рефакторить, — запостите его на
говнокод.ру, посмеёмся вместе!
r = math.fmod(x, 1) #операция деления с остатком определена для дробных чисел. Можно и обычное % использовать.
res = x - r + (0 if r<0.5 else 1)
Ну или если охота поизвращаться со строками,
i, sep, r = str(x).partition('.') #зависимость от разделителя, ага.
if sep is None:
r = '0'
res = int(i) + (1 if r[0] in '56789' else 0)
http://docs.python.org/library/functions.html#round
r = math.fmod(x, 1) #операция деления с остатком определена для дробных чисел. Можно и обычное % использовать.
res = x - r + (0 if r<0.5 else 1)
Ну или если охота поизвращаться со строками,
i, sep, r = str(x).partition('.') #зависимость от разделителя, ага.
if sep is None:
r = '0'
res = int(i) + (1 if r[0] in '56789' else 0)
Для округления достаточно добавить к любому числу 0.5 и от результата отбросить дробную часть.
видимо сказывается очень далеко отброшенная дробная часть