>백엔드 개발 >파이썬 튜토리얼 >Python의 정수 나누기가 반올림 대신 잘리는 이유는 무엇입니까?

Python의 정수 나누기가 반올림 대신 잘리는 이유는 무엇입니까?

Linda Hamilton
Linda Hamilton원래의
2024-12-19 19:07:10453검색

Why Does Integer Division in Python Truncate Instead of Rounding?

나눗셈이 정수로 반올림되는 이유

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.