Computer >> Máy Tính >  >> Lập trình >> lập trình C

Gán một số nguyên cho float và so sánh trong C / C ++

Số nguyên là một kiểu dữ liệu được sử dụng để xác định một số có chứa tất cả các giá trị dương, âm hoặc 0 không phải là phân số. Chúng không thể có số thập phân.

Phao nổi là một kiểu dữ liệu được sử dụng để xác định một số có giá trị phân số. Chúng cũng có thể có số thập phân.

Bây giờ, chúng tôi sẽ kiểm tra giá trị của float và số nguyên được trình biên dịch trả về khi chúng tôi nhập cùng một giá trị cho cả hai.

Ví dụ

#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;
}

Đầu ra

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

Ở đây trong đoạn mã này, chúng ta có thể thấy rằng nếu chúng ta truyền một giá trị số nguyên vào một số thực thì nó sẽ hoạt động như một số nguyên và trả về một giá trị số nguyên dưới dạng đầu ra. Nhưng giá trị tối đa của cả hai đều khác nhau.

Bây giờ, hãy xem điều gì sẽ xảy ra nếu chúng ta khởi tạo biến số nguyên với giá trị float.

Ví dụ

#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;
}

Đầu ra

Float f = 23.768
Integer x = 23

Trong điều kiện này, chương trình được biên dịch và chạy. Biến số nguyên đã loại bỏ các giá trị dấu thập phân của giá trị float khởi tạo và được khởi tạo với giá trị nguyên của nó.

Bây giờ, hãy so sánh các giá trị này -

Ví dụ

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

Đầu ra

TRUE