LINUX.ORG.RU

[python][что за...]Округление

 


0

1

-12 % 5 = 3 Как вобще такое возможно? что за правила такие? Как на нем вобще что то пишут в таких услових??

//python 3.2



Последнее исправление: RA (всего исправлений: 1)

Другой (?) тут ещё недавно жаловался, что в непосредственном представлении питона 1.89 выглядит как 1.8899999999999999 и поэтому на этом недоязыке нельзя работать с деньгами.

PolarFox ★★★★★
()
Ответ на: комментарий от PolarFox

суть в том что в питоне действует округление в меньшую сторону, -2,4 округляется до -3, но почему 2.4 округляется до 3?

RA
() автор топика

А что не так, собственно?
Округление в сторону отрицательной бесконечности, все правильно.
-12/5 соответственно будет -3.

Так работает FLOOR из CL(возвращет для (floor -12 5) два значения: -3 и 3).
Но, правда, в наших лиспах есть разные операции на эту тему, вот аж сколько:
http://www.lispworks.com/documentation/HyperSpec/Body/f_floorc.htm
а в питоне нет, ну что поделать - enjoy your AIDS

anonymous
()
Ответ на: комментарий от RA
$ python
Python 2.6.6 (r266:84292, Dec 26 2010, 22:31:48) 
[GCC 4.4.5] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> int(2.4)
2
>>> int(-2.4)
-2
>>> 

Зря Вы ели на завтрак эти грибы... Во 2м питоне математика полностью идентична С-ям.

AIv ★★★★★
()
Ответ на: комментарий от anonymous

> а в питоне нет, ну что поделать - enjoy your AIDS

Я не поум на кого этот лиспер похож больше - на неубиваемую обезьяну из пиратов карибского моря, или на студента-воолога который выучил тока про блох (а вот если бы у рыб была шерсть, то у них были бы блохи и тд)? Интегральный, собирательный образ...

AIv ★★★★★
()

Для тех, кому не нравится деление во втором питоне, придумали from __future__ import division

enchantner
()

ТС перепутал оператор целочисленного деления (div) с оператором остатка от деления (mod). Ну ничего, бывает.

PolarFox ★★★★★
()
Ответ на: комментарий от buddhist

>Получение остатка от деления — тоже деление :)

Не путай то, что в некоторых ассемблерах есть операция, возвращающая частное и остаток от деления одной операцией с двумя разными математическими понятиями :)

KRoN73 ★★★★★
()
Ответ на: комментарий от PolarFox

Да, при сложение вычитании. При делении умножение влияет только на знак. Остаток что там 2 что там

RA
() автор топика
Ответ на: комментарий от RA

> -12%5=3 ..неправильно

Вы конечно можете исповедовать RA-алгебру целых чисел, но причем здесь тогда бедный питон??? Выучите уже матчасть наконец... -12%3 всегда было, есть и надеюсь будет равно ТРЕМ, во всех ЯП кроме м.б. лиспа;-)

AIv ★★★★★
()
Ответ на: комментарий от AIv

-12%5, че та я тоже грибов переел - мажу мимо клавишь часто... ик.

AIv ★★★★★
()
Ответ на: комментарий от AIv

подели пожалуйста в столбик 12 на 5. у меня на цело поделилось на 2 и в остаток пошло 2.

RA
() автор топика
Ответ на: комментарий от RA

> нет, сам придумал?

Да.

От куда n берется?

Целое, ясное дело.

damnemall
()
Ответ на: комментарий от RA

> И что? я же не вычитаю и не складываю. 2 или -2 но не 3

Короче, ответ либо -2, либо 3, но обычно берут положительное. Еще может от реализации зависеть.

damnemall
()
Ответ на: комментарий от RA

Вы определение по ссылке смотрели? ОСТАТОК ДОЛЖЕН БЫТЬ ПОЛОЖИТЕЛЬНЫМ. Теперь представьте как -12 как произведение 5 на что то целое ПЛЮС ДВА.

AIv ★★★★★
()
Ответ на: комментарий от RA

уфф.. есть два представления -12=-3*5+3 и -12=-2*5-2 классикой считается вариант с положительным остатком, там же по ссылке - в каких ЯП как.

AIv ★★★★★
()
Ответ на: комментарий от damnemall

В RA-алгебре остаток получается как наименьший из возможных но без знака;-)

AIv ★★★★★
()
Ответ на: комментарий от RA

Ты в школе учился?
По пунктам:
1) 12 / (-5) = -2,4, ближайшее меньшее целое - -3;
2) -3 * -5 = 15;
3) 12 - 15 = -3;
Ответ: Остаток минус три.

(-12)%5
1) (-12)/5 = -2,4, наименьшее ближайшее целое - -3.
2) -3 * 5 = -15;
3) -12 - (-15) = 3;
Ответ: ТРИ.

12%5
1) 12/5=2,4, наименьшее ближайшее целое - 2.
2) 2*5=10;
3) 12 - 10 = 2;
Ответ: ДВА.

Artificial_Thought ★★★★
()

в школе учились? учили что такое остаток? отстаток от деления m на n --- неотрицательное число r, такое, что 0 <= r < n.

((-5) * 3) + 3 = 12

do0dlez ★★
()

Спасибо!!!

Всем спасибо!!!! особенно двум последним ораторам и alv

Питон крутяцкий язык

RA
() автор топика
Ответ на: Спасибо!!! от RA

>Питон крутяцкий язык

Питон — урод среди языков.

AST-PM-105
()
Ответ на: комментарий от do0dlez

Остаток от деления неотрицательного числа на неотрицательное есть число неотрицательное, а если делим целые, то число будет любым целым. Я выше расписал. А если делим действительные, то ещё веселее.

Artificial_Thought ★★★★
()

-12 % 5 = 3

Правильно. Если кто-то в школе арифметику недоучил, то это его проблемы.

Miguel ★★★★★
()
Ответ на: Спасибо!!! от RA

Питон крутяцкий язык

только с приоритетами в нем явно что-то не то

-12 `mod` 5 == -2

(-12) `mod` 5 == 3

faska
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.