ডাটা টাইপ কাস্টিং

নিচের প্রোগ্রামটি লক্ষ্য করুনঃ

Code Example

OUTPUT

c = 2.000000

লক্ষকরুন এখানে [c] c=a/b; [/c] লাইনের মাধ্যমে a কে b দিয়ে ভাগ করা হয়েছে এবং ভাগফলকে c এর মাঝে রাখা হয়েছে। c যেহেতু float হিসাবে ডিক্লেয়ার করা হয়েছে তাই ভাগফল ভগ্নাংশ হলেও c এর মাঝে সংরক্ষন করা যাবে। কিন্তু output এ c = 2.000000 দেখাচ্ছে। তাহলে ভুলটি কোথায়? ভুলটি হলঃ a এবং b হল int টাইপের ভেরিয়েবল তাই a/b এর ফলাফলটি প্রথমে int এ পরিবর্তন হয়ে যায়, অর্থাৎ 5/2 = 2.5 না হয়ে 2 হয়ে যায়, তারপর c এর মাঝে সংরক্ষিত হয়। আর float টাইপের সংখ্যা দেখাতে দশমিকের পরে ছয়টি ডিজিট যোগ হয়। তাই output আসে 2.000000 এখন এই সমস্যা সমাধান করতে a/b এর আগে (float) লিখে a/b এর ফলাফলকে প্রথমে ভগ্নাংশে পরিবর্তন করা হয় এবং পরে c এর মাঝে সংরক্ষন করা হয়। নিচের প্রোগ্রামটিই তার প্রমানঃ

Code Example

OUTPUT

c = 2.500000

এই যে a/b এর আগে (float) লিখে a/b এর মানকে জোড়পূর্বক float এ পরিবর্তন করা হয়েছে – এটাকেই বলে ডাটা টাইপ কাস্টিং। ডাটাটাইপ কাস্টিং এর নিয়ম হলঃ (data type) statement; এখানে data type হল যেই টাইপে আপনি পরিবর্তন করতে চান সেই টাইপ আর statement হলঃ সি এর যেকোন স্টেটমেন্ট। যেমনঃ a*b/log(c) এই স্টেটমেন্টের মান যাই হোক আপনি চান শুধু পূর্ণসংখ্যা দেখাতে, তাহলে a*b/log(c) এর আগে (int) যোগ করে নিচের মত লিখতে হবেঃ
(int) a*b/log(c);