나눗셈이 정수로 반올림되는 이유
Python에서 정수를 나누면 정수가 됩니다. 이 동작은 특히 숫자 범위를 정규화하거나 조정하려고 할 때 놀랄 수 있습니다.
이를 설명하기 위해 다음 코드를 고려해 보겠습니다.
(20-10) / (100-10) == 0
이 표현식이 다음과 같이 평가될 것으로 예상할 수 있습니다. 20과 10의 차이는 10이고, 100과 10의 차이는 90이므로 0.111을 나타내는 float 값입니다. 그러나 결과는 다음과 같습니다. 0은 나눗셈의 양쪽이 정수이기 때문입니다.
이 동작은 결과를 반올림하지 않고 자르는 Python의 정수 나눗셈으로 인해 발생합니다. 0.111은 0.5보다 작으므로 0으로 내림됩니다.
예상 결과를 얻으려면 나눗셈의 양쪽을 수동으로 부동 소수점으로 변환해야 합니다.
(20-10) / float((100-10)) # == 0.111
또는, future를 가져와서 나누기가 부동 소수점을 반환하도록 강제하는 Python 3.x의 동작을 활성화할 수 있습니다. 모듈:
from __future__ import division (10 - 20) / (100 - 10) # == -0.111
위 내용은 Python의 정수 나누기가 반올림 대신 잘리는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!