파이썬 정수 나누기 수레
Python 3.1 (r31:73574, Jun 26 2009, 20:21:35) [MSC v.1500 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> 2/2
1.0
이것이 의도 된 것입니까? 나는 이전 버전이 돌아 오는 것을 강력하게 기억하고 int/int=int
있습니까? 어떻게해야합니까, 새로운 부서 교환 원이 있습니까? 아니면 항상 출연해야합니까?
PEP-238 살펴보기 : 사업부 운영자 변경
// 연산자는 층 구분을 명확하게 요청할 수 있습니다.
죄송합니다 2//2
.
그것이 누군가를 즉시 도울 수 있기를 바랍니다.
Python 2.7 및 Python 3의 Division 연산자 동작
Python 2.7 : 기본적으로 나누기 연산자는 정수 출력을 반환합니다.
"배당 또는 제수" 에 2 배의 1.0 을 곱한 결과
100/35 => 2 #(Expected is 2.857142857142857)
(100*1.0)/35 => 2.857142857142857
100/(35*1.0) => 2.857142857142857
파이썬 3에서
// => used for integer output
/ => used for double output
100/35 => 2.857142857142857
100//35 => 2
100.//35 => 2.0 # floating-point result if divsor or dividend real
허용 된 답변은 이미 PEP 238을 언급하고 있습니다. PEP 전체를 읽지 않고 진행중인 작업에 관심이있는 사람들을 위해이면에 훑어보기를 원합니다.
파이썬은 같은 연산자를 매핑 +
, -
, *
및 /
특수 기능, 그러한 예를 들어 있음은 a + b
동일합니다
a.__add__(b)
파이썬 2의 분할에 대해서는, 거기에만 디폴트로 /
에 맵핑 __div__
하고, 결과는 입력 유형에 의존한다 (예를 들어 int
, float
).
Python 2.2는이 __future__
기능을 도입하여 division
부서 의미를 다음과 같은 방식으로 변경했습니다 (TL; DR of PEP 238).
/
__truediv__
"분할의 수학적 결과에 대한 합리적인 근사값을 반환해야하는" 맵 (PEP 238에서 인용)//
에__floordiv__
대한 층별 결과를 반환해야합니다./
Python 3.0에서는 PEP 238의 변경 사항이 기본 동작이되었으며 더 이상 __div__
Python의 객체 모델에 특별한 방법이 없습니다 .
Python 2 및 Python 3에서 동일한 코드를 사용하려면
from __future__ import division
와 PEP 238의 의미 스틱 /
과 //
.
참고 URL : https://stackoverflow.com/questions/1282945/python-integer-division-yields-float
'Programing' 카테고리의 다른 글
내부 테스트 중에 ITSAppUsesNonExemptEncryption 수출 규정 준수? (0) | 2020.05.07 |
---|---|
PostGIS 버전 받기 (0) | 2020.05.07 |
Java 8 람다, Function.identity () 또는 t-> t (0) | 2020.05.07 |
Ruby on Rails : 전역 상수를 정의 할 위치는? (0) | 2020.05.07 |
Kotlin의 MutableList를 초기화하여 MutableList를 비우려면 어떻게해야합니까? (0) | 2020.05.07 |