Computer >> 컴퓨터 >  >> 프로그램 작성 >> C 프로그래밍

C/C++에서 부동 소수점 및 비교에 정수 할당

<시간/>

정수 모든 양수, 음수 또는 0이 아닌 분수 값을 포함하는 숫자를 정의하는 데 사용되는 데이터 유형입니다. 소수점을 사용할 수 없습니다.

플로트 분수 값이 있는 숫자를 정의하는 데 사용되는 데이터 유형입니다. 소수도 포함될 수 있습니다.

이제 컴파일러가 두 값에 동일한 값을 입력할 때 float 및 integer 반환 값이 무엇인지 확인합니다.

예시

#include <iostream>
using namespace std;
int main(){
   float f = 23;
   unsigned int x = 23;
   cout<<"Float f = "<<f<<endl;
   cout<<"Integer x = "<<x<<endl;
   f = 0xffffffff;
   x = 0xffffffff;
   cout << "f = " << f << endl;
   cout << "x = " << x << endl;
   return 0;
}

출력

Float f = 23
Integer x = 23
f = 4.29497e+09
x = 4294967295

여기 이 코드에서 정수 값을 float에 전달하면 정수로 작동하고 정수 값을 출력으로 반환한다는 것을 알 수 있습니다. 하지만 둘 다 최대값이 달라집니다.

이제 float 값으로 정수 변수를 초기화하면 어떻게 되는지 봅시다.

예시

#include <iostream>
using namespace std;
int main(){
   float f = 23.768;
   unsigned int x = 23.768;
   cout<<"Float f = "<<f<<endl;
   cout<<"Integer x = "<<x<<endl;
   return 0;
}

출력

Float f = 23.768
Integer x = 23

이 조건에서도 프로그램이 컴파일되고 실행됩니다. 정수 변수는 초기화 float 값의 소수점 값을 버리고 정수 값으로 초기화됩니다.

이제 이 값을 비교해 보겠습니다 -

예시

#include <iostream>
using namespace std;
int main(){
   float f = 0xffffffff;
   unsigned int x = 0xffffffff;
   if(f == x ){
      cout<<"TRUE";
   }
   else
      cout<<"FALSE";
   return 0;
}

출력

TRUE