C++ 실수 정밀도

C++/문법 / / 2020. 7. 22. 23:31
728x90
반응형
더보기
# include <iostream>

using namespace std;

int main() 
{
	float num0 = 0.1f; // 0.1보다 살짝큰 숫자. 
	float num1 = 0.02f * 0.5f; // 0.1보다 작다. 
	
	cout.precision(64); // 64bit
	cout << num0 << endl;
	cout << num1 << endl;
	
	if(num0 == num1)
		cout << "num0과 num1은 같다." << endl;
	else if(num0 != num1)
		cout << "num0과 num1은 같지 않다." << endl;
	if(num0 == 0.1)
		cout << "double num0은 0.1과 같다." << endl; // double
	if(num0 == 0.1f)
		cout << "float num0은 0.1과  같다." <<endl; // float
	if(num0 == 0.1L)
		cout << "long double num0은 0.1과  같다." <<endl; // long double	
	// 0.1뒤에 float, long double, double 중 무엇이 오느냐에 따라서 결과가 달라진다. 처음 선언한 자료형으로 하는게 그나마 정확 
}

[그림1] 정밀도 예제 출력

 

728x90
반응형
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기