DAVID J. Malan: Nagu te ilmselt teate, temperatuure mõõdetakse eri tasandi eri maailma osades. Näiteks 212 kraadi Fahrenheiti on 100 kraadi ja 32 kraadi Fahrenheit on 0 kraadi Celsiuse järgi. Kas poleks tore, kui meil oli arvuti programm, mis võimaldas meil teisendada, ütleme, Fahrenheit Celsiuse? Noh, me saame kirjutada, et programm. Vaatame kõigepealt alustada hulka cs50.h, nii et saame kasutada funktsiooni nimetatakse saada float, mis, nagu get int, saab number alla, kuid seekord ujukomaarvuna - üks koos koma. Teeme ka standard io.h nii et meil on juurdepääs funktsioone nagu print f. Ja olgem ka tunnistada peamised tavalisel viisil. Teeme järgmise kiire kasutaja jaoks temperatuur Fahrenheiti järgi. Olgem nüüd tegelikult saada, et temperatuur alates kasutaja kõigepealt kuulutatakse muutuja nimega f tüüpi float. Float, jälle, mis tähendab, muutuja, mis salvestab ujukoma väärtust üks koma. Olgem määrata selle tagastamise väärtus get float. Ja siis teeme natuke aritmeetiline on see esimene kuulutatakse teine ​​ujuk nimetatakse C Celsius ja kaupluse C tulemusena mõned ühised aritmeetika. 5,0 jagatud 9,0 korda F miinus 32,0. Olgem nüüd printida tulemus Selle arvutuse. protsenti f - mis tähendab kohatäide Murdarv - koma C välja trükkida temperatuur Celsiuse järgi. Hoiame oma lõplik. Koostage koos F C. Run programmi dot kaldkriipsuga F C. Ja proovime neid ühiseid temperatuuridel. 212 kraadi Fahrenheiti on 100 kraadi Celsiuse järgi. 32 kraadi Fahrenheiti on 0 kraadi Celsiuse järgi. Nüüd võimaldab täpsustada seda programmi vähe natuke mitte trükkimiseks üsna paljud 0- pärast, et kümnendkohani. Et seda teha, ma lähen mine tagasi rida 11. Ja mitte lihtsalt täpsustada protsenti f, Ma lähen selle asemel määrata, ütleme, 0,1 f, teavitades print f, et ma ainult soovite printida Murdarv üks väärtus pärast kümnendkohani. Olgem salvestage oma programmi. Kompileeri see make F C. Seejärel uuesti, siis koos dot kaldkriipsuga F C ja olgem proovimiseks, ütleme, 212, mis annab mulle 100,0. Nüüd on see väärib märkimist, et ma tegin midagi väga teadlikult line 9. Märka, kuidas ma kirjutasin 5 on 5,0, 9 kui 9,0, ja isegi 32 kui 32,0. Noh, neist kahe esimese väärtused väga teadlikult valitud olema ujukoma väärtuste, mitte ainult sellepärast, kooskõla ülejäänud Minu programmi - mis loomulikult eeldab ujuv punkt väärtused - kuid kuna selgub, et C, Kui jagada int teine ​​int, Saadud vastus sa lähed, et saada on ise int, isegi kui see tähendab, võttes visata kõik pärast koma. Teisisõnu, kui ma seda muuta 5,0 kuni 5 või käesoleva 9,0-9 ja seejärel salvestage minu programm, kompileeri koos make F C, ja siis uuesti käivitada koos dot kaldkriipsuga F C ja kirjuta sisend nagu 212, märgata, et vastus, mille ma lähen saada see aeg on tegelikult täiesti vale. 0,0 ei ole õige kraad Celsius kui 212 Fahrenheiti järgi. Noh, mis toimub? Noh, vastavalt 9, sest 5 on nüüd täisarv ja kuna 9 on nüüd täisarv tulemus matemaatiliselt peaks olema 0,5555 ja nii edasi. Kuid kuna tulemus, vastavalt C eeskirju, peab olema int, et 0,5555 saab ära visata, jättes meile vaid 0. Nii et lõpuks, ma lõpuks korrutades täiesti juhuslikult 0 korda f miinus 32,0, mis on ükskõik mida alati läheb mulle 0. Nii et pidage meeles, igal ajal, kasutades ujukoma väärtuste lähedus ints, sa ei pruugi tingimata saada vastus, et sa oodata. Ja nii hoolitseda kasutada, kui ma tegin Esimesel juhul ujukoma väärtuste kogu, et vältida selliseid probleeme.