>>> round(42.001 + .45) 42.0
>>> round(42.001 + .45) 42.0
py.user.nextУ библиотечной ceil вообще, все что больше 42 округляется вверх
а что должно быть, 43 ?
In [1]: from math import ceil In [2]: ceil(42.0769230769) Out[2]: 43.0 In [3]: ceil(42.001) Out[3]: 43.0
PooHэто-то понятно, мне просто показалось, что автору надо по семёрке округлять (по сотым)
У библиотечной ceil вообще, все что больше 42 округляется вверх
>>> a = 42.0769230769 >>> a = float(int(a + (a > int(a)))) >>> a 43.0 >>>
py.user.nextХитрый способ! Спасибо!
>>> a = 42.0769230769
>>> a = float(int(a + (a > int(a))))
>>> a
43.0
def round_in_bigger(val): return sum((lambda x: (int(x[0]), bool(int((x[1]))))) (str(float(val)).split('.'))) for i in [21.1, 34, 56.07, 89.99]: print round_in_bigger(i)
Seganapaну, math.ceil() быстрее, так как они (функции из math) скомпилированы
Хитрый способ!
py.user.nextИ главное - гораздо очевиднее.
ну, math.ceil() быстрее, так как они (функции из math) скомпилированы
FishHookЭто же лисп!((lambda x: (int(x[0]), bool(int((x[1]))))) (str(float(val)).split('.')))
odnochlenЭто типа как приглашение участвовать в конкурсе на самую идиотскую реализацию ceil и первый номинант.
Это же лисп!