2013-03-19 3 views

답변

22

정수 나누기는 항상 음의 무한대로 반올림됩니다.

http://www.mathsisfun.com/numbers/images/round-up.gif

무지 또는 긴 정수 나눗셈은 동일한 유형의 정수를 산출한다; 결과는 플로어 함수가 결과에 적용되는 수학 부문의 결과입니다. http://docs.python.org/2/reference/expressions.html#binary-arithmetic-operations

 

이것은 정수 나눗셈 및 모듈로 허용

(나머지, %) 운영자 신원 x == (x/y)*y + (x%y) 통해 좋게 연결한다.

 

1  

플로어 (x)는 최대 정수 이하인 X이다.

+0

'(a // b) * b + a % b == a '에 메모를 추가 할 가치가 있습니다. – abarnert

+0

(+1) 그림이 멋지다. 말씨에 관한 한, "반올림"보다 "부정적인 무한으로의 회진"을 말하는 것이 덜 모호합니다. – NPE

+0

[Wikipedia] (http : //en.wikipedia.org/wiki/Modulo_operation # Remainder_calculation_for_the_modulo_operation)은 실제로 대부분의 언어 (C90이 주목할만한 예외 임)가 분할 및 배분 기호 모듈러스 또는 바닥 분할 및 제수 기호 모듈러스를 갖는 이유에 대한 훌륭한 설명을 제공합니다. 둘 중 하나는 합리적입니다 (세 번째 옵션은 항상 양수입니다). 그러나 파이썬이 선택한 방식은 숫자 이론과 실제 연산 모두에서 더 일반적입니다. – abarnert

1

정수 나누기는 어떤 플로트가 나오는 지 플로어()라고 생각합니다.

그래서 첫 번째 나눗셈은 -2이고 두 번째는 1입니다.