ইন্টিজার (Integer) হলো একটি ডেটা টাইপ যা এমন নম্বর ডিফাইন করতে ব্যবহৃত হয় যেটিতে সব পজিটিভ, নেগেটিভ বা শূন্য নন-ফ্র্যাকশনাল ভ্যালু থাকে। এগুলো ডেসিমেল ধারণ করতে পারে না।
ফ্লোট (Float) হলো একটি ডেটা টাইপ যা ফ্র্যাকশনাল ভ্যালুযুক্ত নম্বর ডিফাইন করতে ব্যবহৃত হয়। এগুলো ডেসিমেলও ধারণ করতে পারে।
এখন, আমরা চেক করব কম্পাইলার একই ভ্যালু ইন্টিজার এবং ফ্লোটদুইটাইকে দিলে কী রিটার্ন করে।
উদাহরণ
#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
এই কোডে, আমরা দেখতে পাচ্ছি যে যদি আমরা একটি ইন্টিজার ভ্যালু ফ্লোটে পাস করি তবে সেটি ইন্টিজার হিসাবেই কাজ করে এবং আউটপুট হিসেবে ইন্টিজার ভ্যালু রিটার্ন করে। কিন্তু তাদের ম্যাক্সিমাম ভ্যালু দুটি আলাদা হয়।
এখন, দেখি যদি ইন্টিজার ভেরিয়েবলকে ফ্লোট ভ্যালু দিয়ে ইনিশিয়ালাইজ করি।
উদাহরণ
#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
এই কেসেও প্রোগ্রাম কম্পাইল ও রান হয়। ইন্টিজার ভেরিয়েবলটি ইনিশিয়ালাইজ করা ফ্লোট ভ্যালুর ডেসিমেল পয়েন্টের মান বাদ দিয়ে শুধু ইন্টিজার পার্ট নিয়ে ইনিশিয়ালাইজ হয়।
এখন, এই ভ্যালুগুলো তুলনা করি −
উদাহরণ
#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