DAVID J. Malan: Както вероятно знаете, температури са измерени като се използва различни мащаби в различни части на света. Например, 212 градуса по Фаренхайт е 100 градуса по Целзий и 32 градуса Fahrenheit е 0 градуса по Целзий. Не би ли било хубаво, ако имахме компютър програма, която ни позволи да конвертирате от, да речем, по Фаренхайт да Целзий? Е, можем да напишем тази програма. Нека първо да започнем с включва cs50.h, така че ние можем да използваме функция, наречена получите поплавък, който, като GET ПНА, получава брой от потребителя, но този път плаваща запетая - един с десетична запетая. Нека също така да включва стандартен io.h така че ние имаме достъп до функции като печат F. И нека да обяви главната по обичайния начин. Нека следващия напомни на потребителя за температура по Фаренхайт. Нека сега се получи в действителност тази температура от потребителя, за първи път от за обявяване на променлива, наречена е от тип плувка. A плувка, отново, което означава, променлива, която съхранява стойност с плаваща запетая, една с десетична запетая. Нека си го присвои връщането стойност на GET плувка. И след това нека да направим малко аритметика върху него, първо се декларира друга плувка наречен C за Целзий и се съхранява в C на резултат на някакъв общ аритметика. 5.0 разделено на 9,0 пъти F минус 32.0. Нека сега отпечатате резултата на това изчисление. процента е - което означава контейнер за стойност с плаваща запетая - запетая C да разпечатате температура в градуси по Целзий. Да спасим последната ми. Съставете с F до C. Run програмата с точка наклонена черта F до C. И нека да се опитаме тези общи температури. 212 градуса по Фаренхайт е 100 градуса по Целзий. 32 градуса по Фаренхайт е 0 градуса по Целзий. Сега да се усъвършенства тази програма малко малко от не печата толкова много на 0 след този знак след десетичната запетая. За да направите това, аз отивам да се върна в ред 11. И вместо само да уточним процента е, Отивам да се уточни, вместо, да речем, 0.1 е, информиране печат е, че аз само искате да отпечатате стойност с плаваща запетая до една стойност след десетичната запетая. Нека да запишете отново моята програма. Го компилирате с марка F до C. След това това изпълнете отново с точка наклонена черта F до C. И нека да опитате отново с, да речем, 212, което ми дава 100.0. Сега тя е да се отбележи, че го направих нещо много съзнателно в линия 9. Забележете как съм написал 5 е 5.0, 9 като 9.0, и дори 32 като 32.0. Е, първите две от тези стойности са много съзнателно избрана да бъде стойности с плаваща запетая, а не само защото на съгласуваност с останалите на моята програма - което ясно включва плаващ точкови стойности - но тъй като се оказва, че C, Ако разделят един от друг Int Int, на Полученият отговор вие ще получите е Самата едно цяло число, дори ако това означава се налага да изхвърлите всичко след десетичната запетая. С други думи, ако мога да променя този 5.0 до 5 или този 9.0 до 9 и след това запазете моята програма, компилирате с марка F до C, и след това да го пуснете отново с точка наклонена черта F до C и тип в един вход на като 212, забележите, че отговорът Отивам да се този път е доста погрешно. 0.0 не е в правилната степен Целзий като 212 по Фаренхайт. Е, какво става? Е, в линия 9, тъй като 5 сега е число и защото 9 сега е цяло число, резултатът математически трябва да бъде 0,5555 и така нататък. Но тъй като в резултат на това, според Правила от C, трябва да бъде едно цяло число, че 0.5555 получава изхвърля, ни оставя само с 0. Така че в края на краищата, аз в крайна сметка се умножи съвсем случайно 0 пъти е минус 32.0, което е без значение какво винаги ще ми даде 0. Така че имайте предвид, по всяко време, използвайки стойности с плаваща запетая в близост цели числа, може да не е задължително получите отговор, така че очакваме. И така, да се грижи за използване, тъй като, което направих в първият случай, с плаваща запетая стойности цялата да се избегнат всякакви такива въпроси.