>> DAVID J. مالان: همانطور که احتمالا می دانید، درجه حرارت با استفاده از اندازه گیری
مقیاس های مختلف در مختلف نقاط جهان.
به عنوان مثال، 212 درجه فارنهایت است 100 درجه سانتیگراد و 32 درجه
فارنهایت 0 درجه سانتیگراد است.
آیا آن را نمی شود خوب اگر ما یک کامپیوتر به حال برنامه ای است که به ما اجازه
تبدیل مثلا از فارنهایت به سانتیگراد؟
>> خب، ما می تواند که برنامه ارسال.
بیایید اول با شامل cs50.h شروع، به طوری که ما می توانیم یک تابع به نام استفاده از
دریافت شناور، که، برای مثال، int دریافت کنید، می شود تعداد از کاربر، اما این بار
عدد با ممیز شناور - یک با نقطه اعشار.
>> اجازه دهید همچنین شامل io.h استاندارد به طوری که ما به اینترنت دسترسی دارند
توابع مانند چاپ F.
و اجازه دهید همچنین اصلی اعلام در روش معمول.
>> بیایید بعدی به کاربر برای دما در درجه فارنهایت.
اجازه دهید در حال حاضر در واقع دریافت کنید که درجه حرارت از کاربر، برای اولین بار توسط
اعلام یک متغیر به نام F از نوع شناور.
یک شناور، دوباره، به معنی یک متغیر است که ذخیره یک مقدار ممیز شناور،
یکی با نقطه اعشار.
>> اجازه دهید آن را بازگشت اختصاص دهید ارزش شناور را دریافت کنید.
و پس از آن اجازه دهید کمی از حساب بر روی آن، برای اولین بار اعلام شناور دیگر
C خواستار سانتیگراد و ذخیره در C نتیجه برخی از حساب مشترک.
5.0 تقسیم بر 9.0 بار F منهای 32.0.
>> بیایید به نتیجه چاپ از این محاسبات.
درصد ج -
مفهوم مکان نگه دار برای ممیز شناور -
کاما C به نسخه قابل چاپ کردن درجه حرارت در سانتیگراد است.
اجازه دهید آخر من را نجات دهد.
کامپایل با F به C. اجرای برنامه با نقطه F بریده بریده به C.
>> و اجازه دهید آن مشترک را امتحان کنید درجه حرارت.
212 درجه در درجه فارنهایت 100 درجه سانتیگراد است.
32 درجه در درجه فارنهایت است 0 درجه سانتیگراد است.
>> در حال حاضر اجازه می دهد که اصلاح این برنامه کمی کمی با چاپ کاملا به عنوان بسیاری از 0 نیست
پس از آن محل دهدهی.
برای این کار، من قصد دارم بازگشت به خط 11.
و نه فقط تعیین درصد F، من قصد دارم به جای مشخص، می گویند،
0.1 F، اطلاع رسانی چاپ F که تنها I می خواهید برای چاپ یک مقدار ممیز شناور
به یک ارزش بعد از محل دهدهی.
>> اجازه دهید برنامه من resave.
کامپایل مجدد آن را با آرایش F به C. سپس دوباره آن را با نقطه F بریده بریده به C. و
اجازه دهید با، مثلا، 212 سعی مجدد، که به من می دهد 100.0.
>> در حال حاضر آن شایان ذکر است که من چیزی بسیار به عمد در خط 9.
دقت کنید که چگونه من نوشت 5 است 5.0 9 به عنوان 9.0 و حتی 32 به 32.0.
خوب، این دو برای اولین بار از این ارزش ها بود بسیار به عمد انتخاب می شود
مقادیر ممیز شناور، نه فقط به دلیل سازگاری با بقیه
برنامه من -
که شناور به وضوح شامل ارزش نقطه -
اما به دلیل آن معلوم است که C، اگر شما اعضای هیات های هوشمند یکی دیگر از تقسیم،
در نتیجه پاسخ شما برای به دست آوردن خود را از نوع int، حتی اگر آن به معنی
با به دور انداختن همه چیز بعد از نقطه اعشار.
>> به عبارت دیگر، اگر عوض کنم این 5.0 به 5 یا این 9.0-9 و سپس resave
برنامه های من، آنرا کامپایل مجدد با آرایش F به C، و سپس دوباره آن را اجرا کنید با اسلش نقطه F
به C و در نوع ورودی مانند 212، توجه کنید که این جواب من قصد دارم
دریافت این زمان است که در واقع کاملا اشتباه است.
0.0 است که درجه درست در نمی سانتیگراد به 212 درجه فارنهایت.
>> خب، چه خبر است؟
خوب، در خط 9، به دلیل 5 در حال حاضر عدد صحیح و چون 9 در حال حاضر
عدد صحیح، نتیجه ریاضی باید 0.5555 است و غیره.
اما از آنجا که در نتیجه، با توجه به قوانین C است، باید از نوع int، که
0.5555 می شود دور انداخته، ترک ما تنها با 0.
>> بنابراین در پایان، من در نهایت ضرب کاملا به طور تصادفی در 0 بار F منفی
32.0، که بدون توجه به آنچه همیشه به من 0 دهد.
پس وقت را در ذهن با استفاده از نگه داشتن، هر زمان مقادیر ممیز شناور در نزدیکی
نوع داده int، شما ممکن است لزوما دریافت پاسخ آن، بنابراین شما انتظار می رود.
و به این ترتیب مراقبت را برای استفاده، به عنوان من در انجام ارزش های مورد اول، نقطه شناور
در سراسر برای جلوگیری از هر گونه مسائل.