উত্তর:
একই জাভাদোক অনুসারে:
যুক্তিটি যদি NaN
কোনও অসীম বা ধনাত্মক শূন্য বা নেতিবাচক শূন্য হয় তবে ফলাফলটি যুক্তির মতো the একটি দিয়ে এটি করতে পারে না int
।
বৃহত্তম double
মানটি বৃহত্তম থেকেও বড় int
, তাই এটি হতে হবে long
।
এটি নির্ভুলতার জন্য ডাবল ডেটা টাইপের একটি 53 বিট ম্যান্টিসা রয়েছে। অন্যান্য জিনিসগুলির মধ্যে এর অর্থ যা একটি ডাবল সম্পূর্ণ নির্ভুলতা ক্ষতি ছাড়াই 2 represent 53 পর্যন্ত উপস্থাপন করতে পারে।
আপনি যদি একটি পূর্ণসংখ্যার মধ্যে এত বড় সংখ্যক সঞ্চয় করেন তবে আপনি একটি ওভারফ্লো পাবেন। পূর্ণসংখ্যার কেবল 32 বিট থাকে।
পূর্ণসংখ্যাটিকে দ্বিগুণ হিসাবে ফিরিয়ে দেওয়া এখানে সঠিক জিনিস কারণ এটি একটি পূর্ণসংখ্যার চেয়ে অনেক বেশি বিস্তৃত ব্যবহারকারীর সংখ্যা-সীমা সরবরাহ করে।
অন্যরা কেন আপনাকে বলেছে, আপনি কী করতে চাইলে সঠিকভাবে কীভাবে গোল করবেন তা আমি আপনাকে বলছি। আপনি যদি কেবল ইতিবাচক সংখ্যা ব্যবহার করতে চলেছেন তবে আপনি এই বিবৃতিটি ব্যবহার করতে পারেন:
int a=(int) 1.5;
যাইহোক, (int) সর্বদা 0 এর দিকে ঘুরবে Thus সুতরাং, যদি আপনি একটি নেতিবাচক সংখ্যা করতে চান:
int a=(int) -1.5; //Equal to -1
আমার ক্ষেত্রে, আমি এটি করতে চাইনি। রাউন্ডিং করতে আমি নীচের কোডটি ব্যবহার করেছি এবং দেখে মনে হচ্ছে এটি সমস্ত প্রান্তের কেসগুলি ভালভাবে পরিচালনা করে:
private static long floor(double a)
{
return (int) Math.floor(a);
}
(int) Math.floor(a)
করবেন না ? এটি সম্ভবত আরও দক্ষ এবং এটি আরও খাটো।
(int) Math.floor(a)
কেবল লিখতে (int) a
পারেন, যদি কোনও ইতিবাচক হয়।
জাভাতে যেমন একটি পূর্ণসংখ্যা এবং ভাসমান পয়েন্ট বিভাগ রয়েছে তেমনি মেঝে করার পূর্ণসংখ্যা এবং ভাসমান পয়েন্ট রয়েছে:
double f = Math.floor(x);
অথবা
int k = (int) x;
তবে আপনার সীমাবদ্ধ সুনির্দিষ্ট পাটিগণিত সহ মেঝে ব্যবহারের ক্ষেত্রে সর্বদা সতর্ক হওয়া দরকার: আপনার x এর গণনাতে 1.99999999 এর মতো কিছু পাওয়া যেতে পারে যা উভয় রূপের দ্বারা 2 না হয়ে 1 তে ভাসবে। এখানে অনেকগুলি অ্যালগরিদম রয়েছে যা কিছু ইনপুট মানগুলির জন্য ভুল ফলাফল এড়াতে এই সীমাবদ্ধতার চারপাশে কাজ করা দরকার।
সুতরাং সেই ত্রুটি এবং অন্যান্য অ-পূর্ণসংখ্যার মানগুলি গণনার একটি সিরিজের মাধ্যমে সঠিকভাবে ক্যাসকেড করতে পারে।
উদাহরণস্বরূপ, আপনি যদি ম্যাথ.ফ্লুয়ারে নং নম্বর (এনএএন) খাওয়ান, এটি এটি পাস করবে।
যদি এটি পূর্ণসংখ্যায় ফিরে আসে তবে এটি এই স্থিতিগুলি বা ত্রুটিগুলি পাশ করতে পারে না এবং আপনি আগের গণনা থেকে খারাপ ফলাফল পেতে পারেন যা দেখতে ভাল তবে আরও প্রক্রিয়া করার পরেও ভুল are