파이썬

파이썬 int(a/b)와 a//b 차이

beomseok99 2023. 7. 6. 00:16
728x90

int(a/b)와 a//b는 일반적인 경우에는 동일한 결과를 반환합니다.

 

그러나 몇 가지 경우에는 차이가 발생할 수 있습니다.

 

1. 연산 과정의 차이

a/b는 항상 실수형(float) 결과를 반환합니다. 여기에 int() 함수를 적용하게 된다면, a//b 는 나눗셈의 결과를 가장 가까운 정수로 내림한 값을 반환합니다. 예를 들어,  5//2 의 결과는 2가 됩니다.

반면에, a//b는 정수형(integer) 몫을 반환합니다. 즉, 나눗셈의 결과를 정수 부분만 남기고 나머지는 버립니다. 따라서 5//2의 결과는 2가 됩니다.

=> 결과는 동일하지만,  나눗셈의 결과를 내림한다는 것과 정수 몫을 구하고 나머지는 버림한다는 애매한 차이가 있다고 볼 수 있겠습니다.

 

2. 음수의 처리

가장 큰 차이라고도 할 수 있는 음수 계산입니다.

 

int(a/b)는 버림 연산을 수행하고, 몫 연산(//)은 내림 연산을 수행하기 때문에, 음수의 경우에는 결과가 조금 다를 수 있습니다.

예를 들어, -5/3의 경우 -5/3은 1.666.. 이고 int(-5/3)은 -1 이고 -5//3은 -2 입니다.

a = -5
b = 3

print(a/b)
print(int(a/b))
print(a//b)

실행 결과

int(-1.666..)의 경우 버림을 취해 -1 이라는 결과를 보이며, -5//3 의 경우 -1.666..을 내림하여 -2가 되는 것을 확인할 수 있습니다.

 

따라서, 일반적인 경우에는 int(a/b)와 a//b는 동일한 결과를 반환하지만, 몇몇 상황에서는 다른 결과를 반환하는 것을 유의해야 합니다.

728x90