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의 방법이 안정성 면에서 더 뛰어나기 때문에 첫번째 방법을 권장합니다.