>> DAVID J. Malan: Kot verjetno veste, Temperature se merijo
različne lestvice v različnih delih sveta.
Na primer, 212 stopinj Celzija, je 100 stopinj Celzija in 32 stopinj
Fahrenheit je 0 stopinj Celzija.
Ali ne bi bilo lepo, če bi imeli računalnik Program, ki nam je omogočilo, da
pretvorbo iz, recimo, Fahrenheit da Celzija?
>> No, lahko zapišemo, da je program.
Poglejmo najprej začeti s vključujejo cs50.h, tako da bomo lahko uporabite funkcijo imenovano
dobili plovec, ki je, kot get notr, dobi število od uporabnika, vendar tokrat
število s plavajočo vejico - ena z decimalno vejico.
>> Oglejmo tudi standardni io.h tako da imamo dostop do
deluje kot tiskalni f.
In naj tudi razglasi glavni na običajen način.
>> Poglejmo naslednji poziv uporabniku za temperature v stopinjah Fahrenheita.
Dajva zdaj dejansko dobili, da je temperatura od uporabnika, najprej z
razglasitvi spremenljivko f tipa float.
Float, še enkrat, kar pomeni, da je spremenljivka shrani plavajočo vejico vrednost,
eno z decimalno vejico.
>> Dajmo mu dodeliti vrnitev Vrednost get likvidna sredstva.
In potem naredimo malo aritmetike na njej, prvi razglasitvi drug plovec
imenovano C Celzija in shranite v C rezultat neke skupne aritmetike.
5.0 deljeno s 9,0-kratnim F minus 32,0.
>> Pojdimo zdaj natisniti rezultata tega računanja.
odstotkov f -
ki pomeni ogrado za plavajočo vejico vrednost -
vejica C natisniti temperature v stopinjah Celzija.
Oglejmo si rešil finale.
Zbere z F do C. Zaženite program z dot slash F do C.
>> In poskusimo tiste skupne temperature.
212 stopinj v Fahrenheit je 100 stopinj Celzija.
32 stopinj v Fahrenheit je 0 stopinj Celzija v.
>> Sedaj omogoča omejite tem programu malo bit, ki ga ne tiska čisto toliko 0-jev
po tem decimalno mesto.
Če želite to narediti, da bom pojdite nazaj na linijo 11.
In ne samo navesti odstotno f, Bom namesto tega opredeliti, recimo,
0.1 f, informiranje print f, da sem samo želite natisniti s plavajočo vejico vrednost
eno vrednostjo po decimalno mesto.
>> Oglejmo shranili svoj program.
Ga prevedem z make F do C. Nato ga ponovite z dot slash F in C,
dajmo poskusiti znova z, recimo, 212, ki mi daje 100,0.
>> Zdaj je treba omeniti, da sem nekaj zelo namerno v vrstici 9.
Opazuj, kako sem napisal 5 je 5,0, 9 kot 9,0, ali celo 32 kot 32,0.
No, so bili prvi dve od teh vrednot zelo zavestno odločili, da bodo
vrednosti s plavajočo vejico, ne samo zato, ker usklajenosti z ostalimi
mojega programa -
ki je očitno povezan s plavajočo točkovni vrednosti -
ampak zato, ker se je izkazalo, da je C, če ste razdeliti int drug int,
Nastalo odgovor boste dobili, je sam int, tudi če to pomeni
da bi vrgel proč vse decimalno vejico.
>> Z drugimi besedami, če zamenjam 5,0 do 5 ali to 9,0-9 in nato shranili
moj program, prevesti z make F do C, in nato ponovno zagnati z dot poševnica F
na C in tip v vložkom kot 212, opazili, da je odgovor bom
se ta čas je pravzaprav zelo narobe.
0.0 ni pravilna izobrazba Celsius kot 212 Fahrenheit.
>> No, kaj se dogaja?
No, v vrstici 9, ker 5 je zdaj število in ker je zdaj 9
število, rezultat matematično mora biti 0,5555 in tako naprej.
Toda, ker rezultat, po katerem Pravila C je, mora biti int, da
0,5555 gets vrgli proč, nam je zapustil le 0.
>> Torej, na koncu, sem na koncu pomnoži čisto po naključju 0 krat f minus
32.0, ki je ne glede na to, kaj vedno dogaja, da me 0.
Torej, imejte v mislih, kadar koli uporabo plavajočo vejico vrednosti v bližini
ints, morda ne nujno dobili odgovor, da ste pričakovali.
In tako poskrbel za uporabo, kot sem storil v Vrednosti prvi primer, plavajoči vejici
ves, da bi se izognili takih vprašanj.