DAVID J. Malan: Jak asi víte, Teplota se měří pomocí různé váhy v různých částech světa. Například, 212 stupňů Fahrenheita je 100 stupňů Celsia a 32 stupňů Fahrenheit je 0 stupňů Celsia. Nebylo by hezké, kdyby jsme měli počítač program, který nám umožnil převést z, řekněme, Fahrenheit na Celsia? No, můžeme napsat, že program. Pojďme si nejprve začít s zahrnují cs50.h, takže můžeme použít funkci nazvanou se plovák, který, stejně jako get int, dostane Číslo od uživatele, ale tentokrát číslo s plovoucí desetinnou čárkou - jeden s desetinnou čárkou. Pojďme také obsahovat standardní io.h tak, že máme přístup k funkce, jako je tisk f.. A pojďme také deklarovat hlavní obvyklým způsobem. Pojďme vedle vyzve uživatele k teplota ve stupních Fahrenheita. Pojďme se skutečně dostat, že teplota od uživatele, nejprve deklarovat proměnnou s názvem f typu float. Float, znovu, což znamená proměnnou, která Ukládá plovoucí bodovou hodnotu, jeden s desetinnou čárkou. Pojďme přiřadit mu návrat hodnota get plováku. A pak se pojďme udělat trochu aritmetiky na to, nejprve deklarovat další float s názvem C pro Celsia a obchod v C výsledek nějakého společného aritmetiky. 5,0 děleno 9,0 násobku F minus 32,0. Pojďme se nyní vytisknout výsledek tohoto výpočtu. procent f - znamenat zástupný symbol pro plovoucí bodová hodnota - čárka C vytisknout teplota ve stupních Celsia. Pojďme zachránit finále. Kompilace s F až C. Spusťte program s dot lomítkem F na ° C. A zkusme ty běžné teploty. 212 stupňů Fahrenheita je 100 stupňů Celsia. 32 stupňů ve stupních Fahrenheita je 0 stupňů Celsia v. Nyní vám umožní vylepšit tento program málo bit tím, že tiskne docela tolik 0'S po tomto desetinné místo. Chcete-li to provést, budu zpět na řádek 11. A spíše než stačí zadat procent f, Jdu na místo určit, řekněme, 0,1 f, informuje tisková f, že jsem jen Chcete-li tisknout plovoucí bodovou hodnotu na jedné hodnoty po desetinné místo. Pojďme znovu uložit svůj program. Překompilovat s make F na ° C. Pak znovu ji tečka lomítko F na ° C. A pojďme zkusit s, řekněme, 212, který mi dává 100,0. Nyní je třeba poznamenat, že jsem to udělal něco velmi záměrně v řádku 9. Všimněte si, jak jsem napsal 5 je 5,0, 9 jako 9,0, a dokonce i 32 jako 32,0. No, první dva z těchto hodnot byly velmi záměrně vybrány tak, aby s plovoucí desetinnou čárkou hodnoty, a to nejen proto, že konzistence s ostatními z mého programu - což jasně zahrnuje plovoucí bodové hodnoty - ale proto, že se ukáže, že C, Pokud rozdělit int jiným int, Výsledná odpověď budete si je sám int, i když to znamená museli vyhodit vše za desetinnou čárkou. Jinými slovy, když změním to 5,0 až 5 nebo toto 9,0-9 a poté znovu uložit můj program, překompilovat s make F na C, a poté znovu spustit ji tečka lomítko F na C a typu v na vstupu, jako je 212, Všimněte si, že odpověď budu se tato doba je vlastně docela špatně. 0.0 není správný stupeň v Celsia jako 212 stupňů Fahrenheita. No, co se děje? Tak, v souladu 9, protože 5 je nyní celé číslo, a proto, že 9 je nyní celé číslo, výsledek matematicky by mělo být 0,5555 a tak dále. Ale protože výsledek, v souladu s Pravidla C je, musí být int, že 0,5555 dostane vyhodit, takže nás jen 0. Takže nakonec skončím vynásobením zcela náhodně 0 krát f minus 32.0, která je bez ohledu na to, jaké vždycky mi dát 0.. Takže se mějte na paměti, kdykoliv pomocí hodnoty s plovoucí desetinnou čárkou v blízkosti ints, nemusí nutně dostanete odpověď, takže můžete očekávat. A tak se postarat o to, využít, jak jsem to udělal v První případ, s pohyblivou řádovou čárkou hodnoty po celou dobu nedošlo k žádné takové problémy.