কম্পিউটার

C++ (floor(), ceil(), trunc(), round() এবং setprecision()) এ ফ্লোটিং পয়েন্ট সংখ্যার যথার্থতা


ফ্লোটিং পয়েন্ট সংখ্যার যথার্থতা একটি ফ্লোটিং পয়েন্ট সংখ্যা দশমিকের পরে মান ধরে রাখতে পারে এমন নির্ভুলতা।

উদাহরণস্বরূপ 10/6 =1.6666666… এগুলোর পুনরাবৃত্ত দশমিক রয়েছে যা সংরক্ষণের জন্য অসীম মেমরি স্পেস নিতে পারে।

সুতরাং এই ধরনের ক্ষেত্রে মেমরি ওভারফ্লো এড়াতে কম্পাইলার সংখ্যাটির একটি নির্ভুল সীমা সেট করে। C++ এ ফ্লোট মানের জন্য এই নির্ভুলতা 6-7 ডিজিটে সেট করা হয়েছে তারপর যদি দশমিকের পুনরাবৃত্তি হয় তবে এটি মানটিকে বাতিল করে দেবে।

সুতরাং, যখন এই বাতিল করা হয় তখন কোন বড় ক্ষতি এড়াতে এমন পদ্ধতি এবং লাইব্রেরি রয়েছে যা নির্ভুলতাকে সমর্থন করে তা হল ফ্লোট মান। এখানে, আমরা সেগুলি নিয়ে আলোচনা করব,

ফ্লোর()

floor() ফাংশন হল রাউন্ড ডাউন ফাংশন যা সংখ্যাটিকে কাছাকাছি পূর্ণসংখ্যার মানের সাথে বৃত্তাকার করে যা সংখ্যার চেয়ে কম।

এটি সর্বদা একটি পূর্ণসংখ্যার মান প্রদান করে যা ফ্লোট নম্বরের পূর্ণসংখ্যার অংশের চেয়ে কম।

লাইব্রেরি:math.h

উদাহরণ

#include<iostream>
#include<math.h>
using namespace std;
int main() {
   float number1 = 0.435 , number2 = 234.2342, number3 = -3.31132, number4 = -0.432;
   cout<<"Values are : \n";
   cout<<"Number 1 : "<<floor(number1)<<endl;
   cout<<"Number 2 : "<<floor(number2)<<endl;
   cout<<"Number 3 : "<<floor(number3)<<endl;
   cout<<"Number 4 : "<<floor(number4)<<endl;
   return 0;
}

আউটপুট

Values are :
Number 1 : 0
Number 2 : 234
Number 3 : -4
Number 4 : -1

সিল()

ceil() ফাংশন হল রাউন্ডিং ফাংশন যা সংখ্যাটিকে নিকটতম পূর্ণসংখ্যার মানগুলিতে বৃত্তাকার করে যা সংখ্যার চেয়ে বড়৷

এটি সর্বদা একটি পূর্ণসংখ্যার মান প্রদান করে যা ফ্লোট নম্বরের পূর্ণসংখ্যা অংশের চেয়ে এক বেশি।

লাইব্রেরি:math.h

উদাহরণ

#include<iostream>
#include<math.h>
using namespace std;
int main() {
   float number1 = 0.435 , number2 = 234.2342, number3 = -3.31132, number4 = -0.432;
   cout<<"Values are : \n";
   cout<<"Number 1 : "<<ceil(number1)<<endl;
   cout<<"Number 2 : "<<ceil(number2)<<endl;
   cout<<"Number 3 : "<<ceil(number3)<<endl;
   cout<<"Number 4 : "<<ceil(number4)<<endl;
   return 0;
}

আউটপুট

Values are :
Number 1 : 1
Number 2 : 235
Number 3 : -3
Number 4 : -0

বৃত্তাকার()

round() ফাংশন হল রাউন্ডিং ফাংশন যা সংখ্যাটিকে নিকটতম পূর্ণসংখ্যার মানগুলিতে বৃত্তাকার করে যা সংখ্যার চেয়ে বড় বা ছোট হতে পারে।

এটি সর্বদা একটি পূর্ণসংখ্যার মান প্রদান করে যা ফ্লোট সংখ্যার পূর্ণসংখ্যার অংশের চেয়ে একটি বেশি/কম হতে পারে।

লাইব্রেরি:math.h

উদাহরণ

#include<iostream>
#include<math.h>
using namespace std;
int main() {
   float number1 = 0.435 , number2 = 234.5612, number3 = -3.31132, number4 = -0.9132;
   cout<<"Values are : \n";
   cout<<"Number 1 : "<<ceil(number1)<<endl;
   cout<<"Number 2 : "<<ceil(number2)<<endl;
   cout<<"Number 3 : "<<ceil(number3)<<endl;
   cout<<"Number 4 : "<<ceil(number4)<<endl;
   return 0;
}

আউটপুট

Values are :
Number 1 : 1
Number 2 : 235
Number 3 : -3
Number 4 : -0

সেটপ্রেসিশন()

setprecision() ফাংশন floot এর মান প্রদান করে যা n দশমিক স্থান পর্যন্ত সঠিক। N হল সেটপ্রিসিশন ফাংশনে পাস করা প্যারামিটার।

কাজের জন্য, এটি স্থির ব্যবহার করে।

লাইব্রেরি:iomanip

উদাহরণ

#include<iostream>
#include<iomanip>
using namespace std;
int main() {
   float number1 = 0.435 , number2 = 234.5612, number3 = -3.31132, number4 = -0.9132;
   cout<<"Nubmer 1 correct upto 0 decimals "<<fixed<<setprecision(0)<<number1<<endl;
   cout<<"Nubmer 2 correct upto 1 decimals "<<fixed<<setprecision(1)<<number2<<endl;
   cout<<"Nubmer 3 correct upto 4 decimals "<<fixed<<setprecision(4)<<number3<<endl;
   cout<<"Nubmer 4 correct upto 3 decimals "<<fixed<<setprecision(3)<<number4<<endl;
}

আউটপুট

Nubmer 1 correct upto 0 decimals 0
Nubmer 2 correct upto 1 decimals 234.6
Nubmer 3 correct upto 4 decimals -3.3113
Nubmer 4 correct upto 3 decimals -0.913

  1. সি++ এ ডুডেনি নম্বর

  2. C++ এ BST থেকে মেঝে এবং ছাদ

  3. C++ এ ফ্লোটিং পয়েন্টের নির্ভুলতা কী?

  4. সি++-এ সিল এবং মেঝের ফাংশন