প্রদত্ত প্রোগ্রামে আমি কেন প্রত্যেকটির জন্য আলাদা আলাদা ফলাফল পেয়েছি printf?
#include <stdio.h>
int main()
{
float c = 4.4e10;
printf("%f\n", c);
printf("%f\n", 4.4e10);
return 0;
}
এবং এটি নিম্নলিখিত আউটপুটটি দেখায়:
44000002048.000000
44000000000.000000
doubleকরতে floatসি ল্যাঙ্গুয়েজ ঘটে? অথবা আপনি কী রূপান্তর থেকে কোন মানগুলি ফল দেয় তা জানতে চান, অর্থাত্ রূপান্তরটির কী প্রভাব পড়ে? অথবা অন্য কিছু?
Cআমরা ব্যবহৃত printf("%f",x)একটি জন্য floatএবং printf("%lf",x)একটি জন্য double। বিষয়গুলি কখন বদলে গেল? এবং কীভাবে একজন স্পষ্টভাবে একটি (একক) মুদ্রণ করবে float- printf("%hf",x)??
%lfprintf মধ্যে হিসাবে একই জিনিস %f। floatএকটি ভেরিয়েবল আর্গুমেন্টে A কে doubleসংকলক দ্বারা রূপান্তরিত করা হয়, ঠিক যেমন shortএকটিতে রূপান্তরিত হয় int।
4.4e10এটি একটিdoubleধ্রুবক যাfloatপ্রারম্ভিক সময়ে রূপান্তরিত হয়cতবেdoubleপাস করার সময় হিসাবে রাখা হয়printf। তবে, আপনি এটি জানতেও পছন্দ করতে পারেন যে একটিfপ্রত্যয় যুক্ত করা এটি একটিfloatধ্রুবক হয়: মুদ্রণটি4.4e10fএকই মানটি প্রদর্শিত হবে যা শুরুতে ফলাফল থেকেcআসে4.4e10f। পার্থক্যfloatথেকে ধ্রুবকdoubleধ্রুবক ফ্লোটিং পয়েন্ট গাণিতিক সঙ্গে মানের কাজ করছেন গুরুত্বপূর্ণ হতে পারে।