ডেভিড জে MALAN: সম্ভবত আপনি কি জানেন, তাপমাত্রা ব্যবহার করে মাপা হয় বিভিন্ন বিভিন্ন মানদণ্ডে বিশ্বের অংশ. উদাহরণস্বরূপ, 212 ডিগ্রী ফারেনহাইট হয় 100 ডিগ্রী সেলসিয়াস এবং 32 ডিগ্রী ফারেনহাইট 0 ডিগ্রী সেলসিয়াস হয়. আমরা একটি কম্পিউটার ছিল এটি চমৎকার হবে না আমাদের অনুমতি দেওয়া যে প্রোগ্রাম ফারেনহাইট,, বলতে থেকে রূপান্তর সেলসিয়াস যাও? ভাল, আমরা যে প্রোগ্রাম লিখতে পারেন. প্রথম cs50.h অন্তর্ভুক্ত দিয়ে শুরু করা যাক, আমরা একটি ফাংশন বলা ব্যবহার করতে পারেন, যাতে পেতে int-এর মত, যা পায়, ভাসা, পেতে একটি ব্যবহারকারী থেকে নম্বর, কিন্তু এই সময় একটি ফ্লোটিং পয়েন্ট সংখ্যা - এক একটি দশমিক বিন্দু সঙ্গে. এর জন্যও আদর্শ io.h অন্তর্ভুক্ত যাক আমরা অ্যাক্সেস আছে যাতে মুদ্রণ চ মত ফাংশন. আর এর প্রধান ঘোষণা দেওয়া স্বাভাবিক ভাবেই. এর পরের জন্য ব্যবহারকারীকে অনুরোধ জানানো যাক ফারেনহাইট জ্বর. এখন চলুন আসলে যে তাপমাত্রা পেতে ব্যবহারকারী থেকে, প্রথম দ্বারা নামক একটি পরিবর্তনশীল প্রকাশক টাইপ ভাসা র চ. একটি ভাসা, আবার, একটি পরিবর্তনশীল, যার অর্থ যে , একটি ফ্লোটিং পয়েন্ট মান সঞ্চয় একটি দশমিক বিন্দু সঙ্গে এক. এর এটি ফিরতি দায়িত্ব অর্পণ করি পেতে ভাসা মান. এবং তারপর এর গাণিতিক কোনো কিছু করতে দেওয়া এটি প্রথম অন্য ভাসা ঘোষণা সি সেলসিয়াস এবং দোকান জন্য বলা হয় সি কিছু সাধারণ গাণিতিক ফলাফল. 5.0 9.0 বার ফল বিয়োগ 32.0 দ্বারা বিভক্ত. এর ফলে এখন মুদ্রণ যাক এই গুনতি এর. শতাংশ চ - জন্য একটি স্থানধারক বোধক ফ্লোটিং পয়েন্ট মান - প্রিন্ট আউট কমা সি সেলসিয়াস তাপমাত্রা. এর আমার চূড়ান্ত সংরক্ষণ করা. সি চালান করার ফল প্রোগ্রামের সাথে কম্পাইল সি করার ডট স্ল্যাশ ফল সঙ্গে এবং এর যারা সাধারণ চেষ্টা করুন তাপমাত্রা. ফারেনহাইট 212 ডিগ্রী 100 ডিগ্রী সেলসিয়াস হয়. ফারেনহাইট মধ্যে 32 ডিগ্রী হল সেলসিয়াস 0 ডিগ্রী. আমি এই প্রোগ্রামটি একটু পরিমার্জন করতে দেয় বেশ অনেক 0 এর মুদ্রণ না করে বিট যে দশমিক স্থান পর. এটি করার জন্য, আমি যাচ্ছি ফিরে লাইন 11 থেকে যান. আর বদলে শুধু শতাংশ চ উল্লেখ, আমি, বলে, এর পরিবর্তে নির্দিষ্ট করতে যাচ্ছি যে আমি শুধুমাত্র 0.1 F, পরিচায়ক মুদ্রণ চ একটি ফ্লোটিং পয়েন্ট মান প্রিন্ট করতে চান দশমিক স্থান পর এক মান. এর আমার প্রোগ্রাম resave যাক. তারপর সি থেকে মেক ফল সঙ্গে এটি পুনরায় কম্পাইল ডট স্ল্যাশ সি থেকে ফল এবং সঙ্গে এটি পুন: প্রকাশ এর 212, বলে, সাথে পুনরায় চেষ্টা করা যাক, যা আমাকে 100.0 আপনি. এখন এটা আমি লক্ষ করেন এর মূল্য খুব ইচ্ছাকৃতভাবে লাইন 9 কিছু. আমি 5 5.0, 9 হল লিখেছিলেন লক্ষ্য করুন কিভাবে 9.0, এবং 32.0 হিসাবে এমনকি 32 হিসাবে. ভাল, যারা মূল্যবোধের প্রথম দুটি ছিল খুব ইচ্ছা হতে নির্বাচিত ফ্লোটিং পয়েন্ট মান, না ঠিক কারণ বাকি সঙ্গে ঐক্য আমার প্রোগ্রাম - যা পরিষ্কারভাবে ভাসমান জড়িত থাকে বিন্দু মান - কিন্তু আপনি যদি এটি, যে সি দেখা যাচ্ছে, কারণ অন্য int-দ্বারা কোন int বণ্টন, আপনি পেতে যাচ্ছেন ফলে উত্তর নিজেই কোন int, এমনকি যদি যে উপায় সবকিছু দূরে নিক্ষেপ করা হচ্ছে দশমিক বিন্দু পরে. অর্থাৎ, আমি এই 5.0 পরিবর্তন যদি করতে 5 বা তাহলে এই 9 থেকে 9.0 এবং resave আমার প্রোগ্রাম,, সি থেকে মেক ফল দিয়ে পুনরায় কম্পাইল এবং তারপর বিন্দু স্ল্যাশ ফল সঙ্গে এটি পুনরায় চালনা 212 মত একটি ইনপুট মধ্যে সি ও টাইপ করতে, লক্ষ্য করা যে আমি যাচ্ছি উত্তর এই সময় কিছুটা ভুল করতে পারেন. 0.0 সঠিক ডিগ্রী নয় 212 ফারেনহাইট হিসাবে সেলসিয়াস. ভাল, কি করছেন? ওয়েল, লাইন 9, 5, কারণ এখন একটি হল পূর্ণসংখ্যা এবং কারণ 9 এখন একটি হল পূর্ণসংখ্যা, ফলে গাণিতিকভাবে তাই 0,5555 হতে এবং উচিত. কিন্তু এর ফলে, অনুযায়ী করার কারণ সি এর নিয়ম,, কোন int হতে হয়েছে যে 0,5555, দূরে নিক্ষিপ্ত হয় শুধু 0 সঙ্গে আমাদের যাব. তাই শেষ পর্যন্ত, আমি গুন শেষ বেশ ঘটনাক্রমে 0 বার চ বিয়োগ কোন ব্যাপার যা কি 32.0, সবসময় আমার 0 দিতে যাচ্ছে. তাই ব্যবহার করে, মনের মধ্যে যে কোনো সময় রাখতে না এর কাছাকাছি ফ্লোটিং পয়েন্ট মান ints, আপনি হতে পারে অগত্যা আপনি আশা তাই উত্তর পাবেন. আমি এ হিসাবে কি এবং তাই, ব্যবহার যত্ন প্রথম ক্ষেত্রে, ফ্লোটিং পয়েন্ট মান সারা কোনো ধরনের সমস্যা এড়ানোর জন্য.