জাভাতে কি ভাসা?


102

আমি এই কোডটি লিখেছি:

float b = 3.6;

এবং আমি এটি পেয়েছি:

ত্রুটি: অমীমাংসিত সংকলন সমস্যা: 
    অমিল টাইপ করুন: ডাবল থেকে ফ্লোটে রূপান্তর করতে পারে না

কেন? এর সংজ্ঞা কি float?



1
@ স্নেফটেল এটি এই প্রশ্নের সদৃশ নয়। এই প্রশ্নটি কেন এটি সংকলন করে না (যার উত্তর 'আপনাকে অবশ্যই আক্ষরিকের সাথে একটি যোগ করতে হবে f'), অন্য প্রশ্নটি আপনাকে কেন যুক্ত করতে হবে তা জিজ্ঞাসা করে f। যদিও তারা সম্পর্কিত, এটি কোনও সদৃশ নয়।
মার্ক রোটভিল

মেটা.স্ট্যাকেক্সেঞ্জিং / প্রশ্ন / 217401/ … দেখুন । লিঙ্কযুক্ত প্রশ্নের উত্তরগুলি এই প্রশ্নের উত্তর।
স্নেফটেল

উত্তর:


180

জাভাতে, আপনি যখন দশমিক সংখ্যা টাইপ করেন 3.6, এটিকে একটি হিসাবে ব্যাখ্যা করা হয় doubledoubleএকটি 64-বিট নির্ভুলতা আইইইই 754 ফ্লোটিং পয়েন্ট, যখন floatএকটি 32-বিট নির্ভুলতা আইইইই 754 ভাসমান পয়েন্ট। যেহেতু একটি এর floatচেয়ে কম নির্ভুল double, রূপান্তরটি স্পষ্টভাবে সম্পাদন করা যায় না।

যদি আপনি একটি ভাসা তৈরি করতে চান তবে আপনার নম্বরটি f(যেমন 3.6f:) দিয়ে শেষ করা উচিত ।

আরও ব্যাখ্যার জন্য, জাভা টিউটোরিয়ালটির প্রাথমিক তথ্য প্রকারের সংজ্ঞা দেখুন


40

বানাও

float b= 3.6f;

একটি ভাসমান-পয়েন্ট আক্ষরিক টাইপ ফ্লোটের হয় যদি এটি ASCII বর্ণ F বা f এর সাথে সংযুক্ত থাকে; অন্যথায় এর ধরণ দ্বিগুণ এবং এটি একটি ASCII বর্ণ D বা d এর সাথে সংযুক্ত হতে পারে


স্ট্রিংয়ের কেবলমাত্র ভাসমানের মূল্য আছে কিনা তা পরীক্ষা করার কোনও উপায় আছে?
মাস্টারজয়ে

13

জিনিসটি হ'ল দশমিক সংখ্যা দ্বিগুণ হয়। এবং যেহেতু ডাবল ফ্লোটে ফিট করে না আপনি স্পষ্টভাবে বলতে হবে আপনি ইচ্ছাকৃতভাবে একটি ফ্লোটকে সংজ্ঞায়িত করবেন। সুতরাং সাথে যান:

float b = 3.6f;

8

জাভাতে, মানগুলি:

  1. 8.5
  2. 3.9
  3. (এবং এইভাবে ..)

ডাবল হিসাবে ধরা হয় এবং ভাসা নয় ।

সমস্যাটি সমাধানের জন্য আপনি একটি কাস্টও সঞ্চালন করতে পারেন:

float b = (float) 3.5;

আরেকটি সমাধান:

float b = 3.5f;

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.