Channi Studies

[C++] 정수끼리의 나눗셈 본문

C++/기타

[C++] 정수끼리의 나눗셈

Chan Lee 2023. 12. 7. 12:21

C++에서 정수끼리 나눗셈을 하게 되면, 소수점 이하의 숫자는 버려집니다.

#include <iostream>
using namespace std;

int main(){
    int num1 = 10;
    int num2 = 3;
    float result = num1 / num2;
    
    cout << "result: " << result << endl;
    // result: 3
    
	return 0;
}

10 / 3 = 3.333333333.. 이지만, 정수형이기 때문에 3으로 출력됩니다.

심지어 결과 자료형을 실수형인 double 또는 float로 선언해도 동일합니다.

 

이럴 때는 연산되는 두가지 변수 중 한가지를 실수형으로 변경하면 해결됩니다.

그것은 static_cast<type>(variable_name) 명령어로 진행됩니다.

예를 들어, 상위 예시에서 float result = static_cast<double>(num1) / num2; 로 선언했다면,

결과가 원하던대로 3.33333 으로 나오게 됩니다.

 

float result = (double)num1 / num2; 의 방법도 존재합니다만,

static_cast의 방법이 안정성 면에서 더 뛰어나기 때문에 첫번째 방법을 권장합니다.