1. doubleপ্রকার

জাভা doubleবাস্তব (ভগ্নাংশ) সংখ্যার সাথে কাজ করার ধরন প্রদান করে। এটি 8 bytesমেমরিতে (প্রকারের দ্বিগুণ ) এবং সীমা intথেকে সীমার মধ্যে মান সংরক্ষণ করতে পারে । তুলনার জন্য: টাইপটি থেকে সীমার মধ্যে একটি মান সঞ্চয় করতে পারে ।-1.7*10308+1.7*10308int-2*109+2*109

বাস্তব সংখ্যায়, ভগ্নাংশটি দশমিক বিন্দুর পরে লেখা হয়। উদাহরণস্বরূপ, 123.456, বা 2.5, বা 100.00, বা 0.01। যখন কম্পিউটারগুলি এই জাতীয় সংখ্যাগুলির সাথে কাজ করে, তখন আমরা তাদের ফ্লোটিং পয়েন্ট নম্বর বলি।

যাইহোক, টাইপ ছাড়াও double, আমাদের টাইপও রয়েছে float(যা আকারে মাত্র 4 বাইট)। এর নাম ফ্লোটিং পয়েন্ট থেকে এসেছে । আর নামটি doubleএসেছে ডাবল ফ্লোট থেকে । A doubleএর চেয়ে দ্বিগুণ বড় float: 8 bytesবনাম 4। এটিকে একটি দ্বিগুণ নির্ভুল ভাসমান-বিন্দু সংখ্যাও বলা হয় ।


2. একটি doubleটাইপ তৈরি করা

ডাবল টাইপটি বাস্তব সংখ্যা সংরক্ষণ করতে ব্যবহৃত হয়। কোডে একটি ভেরিয়েবল তৈরি করতে যা বাস্তব সংখ্যা সংরক্ষণ করতে পারে, আপনাকে এইরকম একটি বিবৃতি ব্যবহার করতে হবে:

double name;
একটি doubleটাইপ তৈরি করা হচ্ছে

যেখানে নাম হল ভেরিয়েবলের নাম। উদাহরণ:

বিবৃতি বর্ণনা
double price;
একটি বাস্তব priceপরিবর্তনশীল তৈরি করা হয়
double weight;
একটি বাস্তব weightপরিবর্তনশীল তৈরি করা হয়
double lightSpeed;
একটি বাস্তব lightSpeedপরিবর্তনশীল তৈরি করা হয়

টাইপের মতো int, আপনি doubleএকই সাথে একাধিক ভেরিয়েবল তৈরি করতে শর্টহ্যান্ড ব্যবহার করতে পারেন:

double name 1, name 2, name 3;
একাধিক doubleভেরিয়েবল তৈরি করা

এবং এমনকি অবিলম্বে তাদের মান নির্ধারণ করুন:

double name 1 = value 1, name 2 = value 2, name 3 = value 3;
doubleএকাধিক ভেরিয়েবল তৈরি এবং শুরু করা

উদাহরণ:

বিবৃতি বিঃদ্রঃ
double price = 5.0;
পরিবর্তনশীল দোকান5.0
double weight = 2;
পরিবর্তনশীল দোকান2.0
double x = 1.0, y = 2.0, z = 3.0;

3. পূর্ণসংখ্যা এবং বাস্তব সংখ্যা বরাদ্দ করা

এটা খারাপ হবে যদি পূর্ণসংখ্যা শুধুমাত্র ভেরিয়েবলের জন্য বরাদ্দ করা যায় int, এবং বাস্তব সংখ্যা - শুধুমাত্র doubleভেরিয়েবলের জন্য। আমরা দুই ধরনের সংখ্যার মধ্যে রূপান্তর করতে সক্ষম হতে চাই। এবং জাভা এই ক্ষমতা প্রদান করে।

doubleপ্রথমত, বাস্তব এবং পূর্ণসংখ্যা উভয় সংখ্যাই ভেরিয়েবলের জন্য বরাদ্দ করা যেতে পারে । পূর্ণসংখ্যা নির্ধারণ করার সময়, তারা কেবল বাস্তব সংখ্যায় রূপান্তরিত হয়। অবশ্যই, প্রক্রিয়ায় কিছু নির্ভুলতা হারিয়ে যেতে পারে।

বিবৃতি বিঃদ্রঃ
double price = 5.0;
পরিবর্তনশীল দোকান5.0
double weight = 2;
পরিবর্তনশীল দোকান2.0
int t = 1000;
double x =  t * t;

পরিবর্তনশীল xদোকান1000000.0

দ্বিতীয়ত, যদি একটি পূর্ণসংখ্যা এবং একটি বাস্তব সংখ্যা কিছু অভিব্যক্তিতে জড়িত থাকে, তাহলে পূর্ণসংখ্যাটি প্রথমে একটি বাস্তব সংখ্যায় রূপান্তরিত হয় এবং শুধুমাত্র তখনই অন্যান্য বাস্তব সংখ্যার সাথে অপারেশন করা হয়।

বিবৃতি বিঃদ্রঃ
int t = 1000;
double x = t * 5.0;

পরিবর্তনশীল xদোকান5000.0
System.out.println(5 * 2);
নম্বরটি 10স্ক্রিনে প্রদর্শিত হবে
System.out.println(5 * 2.0);
নম্বরটি 10.0স্ক্রিনে প্রদর্শিত হবে

এবং পরিশেষে, ভেরিয়েবলে বাস্তব সংখ্যা বরাদ্দ করাও সম্ভব int। যখন আমরা এটি করি, বাস্তব সংখ্যার ভগ্নাংশটি বাতিল করা হয় - সংখ্যাটি নিকটতম পূর্ণ সংখ্যায় বৃত্তাকার হয়।

অতিরিক্তভাবে, কম্পাইলারকে প্রোগ্রামারকে স্পষ্টভাবে কী ঘটছে তা নথিভুক্ত করতে হবে (অন্যান্য প্রোগ্রামাররা বুঝতে পারে যে ভগ্নাংশটি বাদ দেওয়া হচ্ছে)। সাধারণভাবে, এই ধরনের একটি রূপান্তর কোডের মত দেখায়:

integer_variable = (int)(real_number);
intএকটি পরিবর্তনশীল একটি বাস্তব সংখ্যা বরাদ্দ

উদাহরণ:

বিবৃতি বিঃদ্রঃ
int x = (int)(5.5);
পরিবর্তনশীল xদোকান5
double a = 5.999;
int x = (int)(a);
পরিবর্তনশীল xদোকান5
double a = 5.999;
int b = 2;
int x = (int)(a * b);
পরিবর্তনশীল xদোকান11


4. জাভাতে পূর্ণসংখ্যা এবং বাস্তব সংখ্যা ভাগ করা

একটি পূর্ণসংখ্যাকে পূর্ণসংখ্যা দ্বারা ভাগ করার সময়, অবশিষ্টাংশ সর্বদা বাতিল করা হয়। তাহলে আমরা কিভাবে ভাগ 5করতে 2পারি 2.5?

প্রথমে, মনে হচ্ছে সঠিক বিকল্পটি হল:

double d = 5 / 2;

কিন্তু এটা এত সহজ নয়। এখানে সমস্যা হল জাভা মেশিন প্রথমে এর মান গণনা করে 5 / 2এবং শুধুমাত্র তারপর ফলাফলটি পরিবর্তনশীলকে বরাদ্দ করে d। এবং 5 / 2অপারেশন হল পূর্ণসংখ্যা বিভাজন। এর মানে d থাকবে 2বা, আরও সুনির্দিষ্ট হতে হবে,2.0

সঠিক সমাধান হল বিভাজনে জড়িত সংখ্যাগুলির মধ্যে অন্তত একটিকে বাস্তব সংখ্যা হিসাবে লিখতে হবে (যেমন একটি দশমিক বিন্দু দিয়ে):

double d = 5.0 / 2;
double d = 5 / 2.0;
double d = 5.0 / 2.0;

প্রতিটি অভিব্যক্তিতে, d থাকবে2.5

কিন্তু আমরা যদি ভেরিয়েবল নিয়ে কাজ করি? আমাদের যদি এইরকম কোড থাকে তাহলে কী হবে?:

int a = 5;
int b = 2;
double d = a / b;

এখানে একটি চটকদার (এবং সুস্পষ্ট) সমাধান রয়েছে — জাভা মেশিনকে ভেরিয়েবলকে বাস্তব সংখ্যায় রূপান্তর করতে বাধ্য করুন একটি বাস্তব সংখ্যা হিসাবে একটি দ্বারা গুণ করে ( 1.0)

int a = 5;
int b = 2;
double d = a * 1.0 / b;

লক্ষ্য করুন যে গুণ এবং ভাগ সমান অগ্রাধিকার আছে, এবং বাম থেকে ডানে সঞ্চালিত হয়। এর মানে হল যে আমরা যেখানে 1.0 গুণ করি তা গুরুত্বপূর্ণ।

উদাহরণ:

বিবৃতি মৃত্যুদন্ড কার্যকর করার আদেশ ফলাফল
int a = 5;
int b = 2;
double d = 1.0 * a / b;
(1.0 * a) / b; 2.5
int a = 5;
int b = 2;
double d = a * 1.0 / b;
(a * 1.0) / b; 2.5
int a = 5;
int b = 2;
double d = a / b * 1.0;
(a / b) * 1.0; 2.0