>> डेविड जे मालन: आप शायद जानते हैं, तापमान मापा का उपयोग कर रहे हैं
अलग में अलग तराजू दुनिया के कुछ हिस्सों.
उदाहरण के लिए, 212 डिग्री फारेनहाइट है 100 डिग्री सेल्सियस और 32 डिग्री
फारेनहाइट 0 डिग्री सेल्सियस दर्ज किया गया है.
हम एक कंप्यूटर था, तो यह अच्छा नहीं होगा हमें की अनुमति दी है कि कार्यक्रम
फेरनहाइट, कहते हैं, से परिवर्तित सेल्सियस करने के लिए?
>> ठीक है, हम उस प्रोग्राम लिख सकते हैं.
की पहली cs50.h शामिल साथ शुरू करते हैं, हम नाम से एक समारोह का उपयोग कर सकते हैं ताकि
मिल INT की तरह हो जाता है, जो, नाव, मिल एक उपयोगकर्ता से संख्या है, लेकिन इस बार एक
चल बिन्दु संख्या - एक एक दशमलव बिंदु के साथ.
>> चलो यह भी मानक io.h शामिल करते हैं हम करने के लिए उपयोग किया है कि इतना
छापा च की तरह कार्य करता है.
और हम भी मुख्य घोषित करते हैं हमेशा की तरह.
>> के अगले के लिए उपयोगकर्ता का संकेत करते हैं फ़ारेनहाइट में एक तापमान.
अब चलो वास्तव में है कि तापमान मिल उपयोगकर्ता से, पहले से
कहा जाता है एक चर घोषित प्रकार नाव की च.
एक नाव, फिर से, एक चर जिसका अर्थ है कि , एक चल बिन्दु मान संग्रहीत
एक दशमलव बिंदु के साथ एक.
>> चलो यह वापसी आवंटित मिल नाव का मूल्य.
और फिर गणित के एक बिट करते हैं उस पर, पहले एक अन्य नाव की घोषणा
सी में सेल्सियस और दुकान के लिए बुलाया सी कुछ सामान्य गणित का नतीजा है.
5.0 से 9.0 गुना एफ शून्य से 32.0 से विभाजित.
>> चलो अब परिणाम प्रिंट इस गणना की.
प्रतिशत च -
के लिए एक प्लेसहोल्डर वाचक चल बिन्दु मान -
बाहर मुद्रित करने के लिए अल्पविराम सी सेल्सियस के तापमान में.
के अपने अंतिम बचा लो.
सी. भागो एफ कार्यक्रम के साथ संकलन सी. डॉट स्लेश एफ के साथ
>> और हम उन आम की कोशिश करते हैं तापमान.
फारेनहाइट में 212 डिग्री 100 डिग्री सेल्सियस है.
फारेनहाइट में 32 डिग्री है सेल्सियस में 0 डिग्री.
>> अब इस कार्यक्रम के लिए एक छोटी सी को निखारने की सुविधा देता है काफी के रूप में कई 0 का मुद्रण नहीं द्वारा बिट
उस दशमलव स्थान के बाद.
ऐसा करने के लिए, मैं जा रहा हूँ वापस 11 लाइन के पास जाओ.
और बजाय सिर्फ प्रतिशत च निर्दिष्ट, मैं, कहते हैं, बजाय निर्दिष्ट करने के लिए जा रहा हूँ
कि मैं केवल 0.1 एफ, बताए प्रिंट च एक चल बिन्दु मान मुद्रित करना चाहते हैं
दशमलव स्थान के बाद एक मूल्य के लिए.
>> चलो मेरे कार्यक्रम resave करते हैं.
तब सी. बनाने एफ के साथ यह recompile डॉट स्लेश सी. एफ और साथ में यह फिर से दौड़ना
के 212, कहते हैं, के साथ पुन: प्रयास करते हैं, जो मुझे 100.0 देता है.
>> अब यह मैंने किया है कि ध्यान देने योग्य है बहुत जानबूझ 9 लाइन में कुछ.
मैं 5 5.0, 9 लिखा सूचना कैसे 9.0, और 32.0 के रूप में भी 32 के रूप में.
खैर, उन मूल्यों के पहले दो थे बहुत जानबूझ होने के लिए चुना
चल बिन्दु मान, सिर्फ इसलिए नहीं बाकी के साथ संगति की
अपने कार्यक्रम के -
जो स्पष्ट रूप से चल शामिल बात मान -
लेकिन आप तो यह, कि सी पता चला है क्योंकि एक और int द्वारा एक पूर्णांक विभाजित,
आप करने जा रहे हैं जिसके परिणामस्वरूप जवाब है खुद एक पूर्णांक, भले ही इसका मतलब है कि
सब कुछ दूर फेंक करने के लिए होने दशमलव बिंदु के बाद.
>> दूसरे शब्दों में, मैं यह 5.0 बदलते हैं करने के लिए 5 या तो इस 9.0-9 और resave
मेरे कार्यक्रम, सी के लिए make एफ के साथ recompile और फिर डॉट स्लेश एफ के साथ इसे फिर से चलाने
212 की तरह का एक इनपुट में सी और टाइप करने के लिए, सूचना है कि मैं जा रहा हूँ जवाब
इस समय वास्तव में काफी गलत है मिलता है.
0.0 में सही डिग्री नहीं है 212 फारेनहाइट रूप सेल्सियस.
>> खैर, क्या चल रहा है?
खैर, 9 लाइन में, 5 क्योंकि अब एक है पूर्णांक और क्योंकि 9 अब एक है
पूर्णांक, परिणाम गणितीय इतने पर 0.5555 होना चाहिए.
लेकिन परिणाम के अनुसार करने के लिए, क्योंकि सी के नियम, एक पूर्णांक हो गया है कि
0.5555, दूर फेंक दिया जाता है बस 0 के साथ हमें छोड़कर.
>> तो अंत में, मैं गुणा अंत तक काफी अकस्मात 0 बार एफ शून्य
कोई बात नहीं क्या है जो 32.0, मुझे हमेशा 0 देने जा रहा.
तो का उपयोग कर, मन में किसी भी समय रहते हो की निकटता में चल बिन्दु मूल्यों
ints, आप कर सकते हैं, जरूरी नहीं जैसा कि आप उम्मीद तो जवाब मिलता है.
मैं में किया था और इसलिए, उपयोग करने के लिए ध्यान रखना पहले मामले, चल बिन्दु मूल्यों
भर में किसी भी तरह के मुद्दों से बचने के लिए.