Уведомления

Группа в Telegram: @pythonsu

#1 Сен. 26, 2012 01:13:41

odnochlen
Зарегистрирован: 2012-06-28
Сообщения: 794
Репутация: +  14  -
Профиль   Отправить e-mail  

Округление в большую сторону

>>> round(42.001 + .45)
42.0

Офлайн

#2 Сен. 26, 2012 02:10:55

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9937
Репутация: +  856  -
Профиль   Отправить e-mail  

Округление в большую сторону

а что должно быть, 43 ?



Отредактировано py.user.next (Сен. 26, 2012 02:11:23)

Офлайн

#3 Сен. 26, 2012 05:51:56

PooH
От:
Зарегистрирован: 2006-12-05
Сообщения: 1948
Репутация: +  72  -
Профиль   Отправить e-mail  

Округление в большую сторону

py.user.next
а что должно быть, 43 ?
У библиотечной ceil вообще, все что больше 42 округляется вверх
In [1]: from math import ceil
In [2]: ceil(42.0769230769)
Out[2]: 43.0
In [3]: ceil(42.001)
Out[3]: 43.0



Вот здесь один из первых отарков съел лаборанта. Это был такой умный отарк, что понимал даже теорию относительности. Он разговаривал с лаборантом, а потом бросился на него и загрыз…

Офлайн

#4 Сен. 26, 2012 08:43:41

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9937
Репутация: +  856  -
Профиль   Отправить e-mail  

Округление в большую сторону

PooH
У библиотечной ceil вообще, все что больше 42 округляется вверх
это-то понятно, мне просто показалось, что автору надо по семёрке округлять (по сотым)

если именно ceil() надо, то пускай ceil() будет, конечно

>>> a = 42.0769230769
>>> a = float(int(a + (a > int(a))))
>>> a
43.0
>>>



Отредактировано py.user.next (Сен. 26, 2012 08:50:24)

Офлайн

#5 Сен. 26, 2012 09:53:17

Seganapa
От: Новороссийск
Зарегистрирован: 2012-07-31
Сообщения: 139
Репутация: +  0  -
Профиль   Отправить e-mail  

Округление в большую сторону

py.user.next
>>> a = 42.0769230769
>>> a = float(int(a + (a > int(a))))
>>> a
43.0
Хитрый способ! Спасибо!



—————————————————————–
Изучаю и параллельно использую Python 2.7

Офлайн

#6 Сен. 26, 2012 10:12:30

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Округление в большую сторону

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)



Офлайн

#7 Сен. 26, 2012 13:24:40

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9937
Репутация: +  856  -
Профиль   Отправить e-mail  

Округление в большую сторону

Seganapa
Хитрый способ!
ну, math.ceil() быстрее, так как они (функции из math) скомпилированы



Офлайн

#8 Сен. 26, 2012 14:10:10

odnochlen
Зарегистрирован: 2012-06-28
Сообщения: 794
Репутация: +  14  -
Профиль   Отправить e-mail  

Округление в большую сторону

py.user.next
ну, math.ceil() быстрее, так как они (функции из math) скомпилированы
И главное - гораздо очевиднее.

FishHook
((lambda x: (int(x[0]), bool(int((x[1]))))) (str(float(val)).split('.')))
Это же лисп!

Отредактировано odnochlen (Сен. 26, 2012 14:11:30)

Офлайн

#9 Сен. 26, 2012 14:36:18

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Округление в большую сторону

odnochlen
Это же лисп!
Это типа как приглашение участвовать в конкурсе на самую идиотскую реализацию ceil и первый номинант.



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version