DAVID J. Malan: Ako asi viete, Teplota sa meria pomocou rôzne váhy v rôznych častiach sveta. Napríklad, 212 stupňov Fahrenheita je 100 stupňov Celzia a 32 stupňov Fahrenheit je 0 stupňov Celzia. Nebolo by pekné, keby sme mali počítač program, ktorý nám umožnil previesť z, povedzme, Fahrenheit na Celzia? No, môžeme napísať, že program. Poďme si najprv začať s zahŕňajú cs50.h, takže môžeme použiť funkciu nazvanú sa plavák, ktorý, rovnako ako get int, dostane Číslo od užívateľa, ale tentoraz číslo s plávajúcou desatinnou čiarkou - jeden s desatinnou čiarkou. Poďme tiež obsahovať štandardné IO.H tak, že máme prístup k funkcie, ako je tlač f. A poďme tiež deklarovať hlavné obvyklým spôsobom. Poďme vedľa vyzve užívateľa k teplota v stupňoch Fahrenheita. Poďme sa skutočne dostať, že teplota od užívateľa, najprv deklarovať premennú s názvom f typu float. Float, znova, čo znamená premennú, ktorá Ukladá plávajúce bodovú hodnotu, jeden s desatinnou čiarkou. Poďme priradiť mu návrat hodnota get plaváku. A potom sa poďme urobiť trochu aritmetiky na to, najprv deklarovať ďalšie float s názvom C pre Celzia a obchod v C výsledok nejakého spoločného aritmetiky. 5,0 delené 9,0 násobku F mínus 32,0. Poďme sa teraz vytlačiť výsledok tohto výpočtu. percent f - znamenať zástupný symbol pre plávajúce bodová hodnota - čiarka C vytlačiť teplota v stupňoch Celzia. Poďme zachrániť finále. Kompilácia s F až C. Spustite program s dot lomítkom F na ° C. A skúsme tie bežné teploty. 212 stupňov Fahrenheita je 100 stupňov Celzia. 32 stupňov v stupňoch Fahrenheita je 0 stupňov Celzia v. Teraz vám umožní vylepšiť tento program málo bit tým, že tlačí docela toľko 0'S po tomto desatinné miesto. Ak to chcete vykonať, budem späť na riadok 11. A skôr než stačí zadať percent f, Idem na miesto určiť, povedzme, 0,1 f, informuje tlačová f, že som len Ak chcete tlačiť plávajúce bodovú hodnotu na jednej hodnoty po desatinné miesto. Poďme znova uložiť svoj program. Prekompilovať s make F na ° C. Potom znova ju bodka lomítko F na ° C. A poďme skúsiť s, povedzme, 212, ktorý mi dáva 100,0. Teraz je potrebné poznamenať, že som to urobil niečo veľmi zámerne v riadku 9. Všimnite si, ako som napísal 5 je 5,0, 9 ako 9,0, a dokonca aj 32 ako 32,0. No, prvé dva z týchto hodnôt boli veľmi zámerne vybrané tak, aby s plávajúcou desatinnou čiarkou hodnoty, a to nielen preto, že konzistencie s ostatnými z môjho programu - čo jasne zahŕňa plávajúce bodové hodnoty - ale preto, že sa ukáže, že C, Ak rozdeliť int iným int, Výsledná odpoveď budete si ich sám int, aj keď to znamená museli vyhodiť všetko za desatinnou čiarkou. Inými slovami, keď zmením to 5,0 až 5 alebo toto 9,0-9 a potom znovu uložiť môj program, prekompilovať s make F na C, a potom znovu spustiť ju bodka lomítko F na C a typu v na vstupe, ako je 212, Všimnite si, že odpoveď budem sa táto doba je vlastne celkom zle. 0.0 nie je správny stupeň v Celzia ako 212 stupňov Fahrenheita. No, čo sa deje? Tak, v súlade 9, pretože 5 je teraz celé číslo, a preto, že 9 je teraz celé číslo, výsledok matematicky by malo byť 0,5555 a tak ďalej. Ale pretože výsledok, v súlade s Pravidlá C je, musí byť int, že 0,5555 dostane vyhodiť, takže nás len 0. Takže nakoniec skončím vynásobením úplne náhodne 0 krát f mínus 32.0, ktorá je bez ohľadu na to, aké vždy mi dať 0.. Takže sa majte na pamäti, kedykoľvek pomocou hodnoty s plávajúcou desatinnou čiarkou v blízkosti ints, nemusí nutne dostanete odpoveď, takže môžete očakávať. A tak sa postarať o to, využiť, ako som to urobil v Prvý prípad, s pohyblivou rádovou čiarkou hodnoty po celú dobu nedošlo k žiadne také problémy.