DAVID J. Malan: Kā jūs droši vien zināt, temperatūru mēra, izmantojot dažādos mērogos dažādās pasaules daļās. Piemēram, 212 grādi pēc Fārenheita ir 100 grādi pēc Celsija un 32 grādi Fahrenheit ir 0 grādi pēc Celsija. Vai tas nebūtu jauki, ja mums būtu dators programma, kas ļāva mums pārvērst no, teiksim, Fārenheita uz Celsija? Nu, mēs varam rakstīt šo programmu. Lets vispirms sākt ar iekļautu cs50.h, lai mēs varētu izmantot funkciju sauc saņemt peldēt, kas, tāpat kā get int, izpaužas numuru no lietotāja, bet šī laika peldošā punkta numurs - viens ar komatu. Pieņemsim arī ietver standarta io.h lai mums ir piekļuve funkcijas, piemēram, drukas f. Un pieņemsim arī deklarēt galvenā parastā veidā. Pieņemsim nākamais atgādinās lietotājam par temperatūra Fahrenheit. Pieņemsim tagad faktiski saņemt šo temperatūru no lietotāja, pirmkārt, deklarē mainīgo sauc f tipa pludiņu. Peldēt, atkal, kas nozīmē mainīgais, kas saglabā peldošā komata vērtību, viens ar komatu. Pieņemsim piešķirt to atgriešanos vērtība get apgrozāmos līdzekļus. Un tad pieņemsim do mazliet aritmētiskās par to, vispirms paziņojot citu peldēt aicināja C Celsija un veikalā C rezultāts dažas kopējas aritmētisko. 5.0 dalīts ar 9,0 reizes F mīnus 32,0. Pieņemsim tagad izdrukāt rezultātu Šī aprēķināšanas. procenti f - nozīmētu vietturis peldošā punkta vērtība - komats C izdrukāt temperatūra pēc Celsija. Pieņemsim glābt manu finālā. Aizpildi ar F līdz C. Run programmu ar dot slash F līdz C Un pamēģināsim tos bieži temperatūru. 212 grādi pēc Fārenheita ir vismaz 100 grādi pēc Celsija. 32 grādi pēc Fārenheita ir 0 grādiem pēc Celsija. Tagad ļauj precizēt šī programma nedaudz bit ne drukāšanu tik daudz 0 s pēc šī zīme aiz komata. Lai to izdarītu, es esmu gatavojas doties atpakaļ uz līnijas 11. Un nevis tikai norādīt procentiem f, Es esmu gatavojas, nevis norādīt, teiksim, 0.1 f, informējot print f, ka man ir tikai vēlaties drukāt peldošo punktu vērtība vienu vērtību pēc tam, kad aiz komata. Pieņemsim atkārtoti saglabāt savu programmu. Recompile to ar make F līdz C. Tad atkārto to ar dot slash F uz C un pieņemsim mēģināt vēlreiz ar, teiksim, 212, kas dod man 100,0. Tagad tas ir vērts atzīmēt, ka es to darīju kaut kas ļoti apzināti atbilstoši 9. Ievērojiet, kā es uzrakstīju 5 ir 5,0, 9 kā 9,0, un pat 32 kā 32.0. Nu, pirmās divas no šīm vērtībām ir ļoti apzināti izvēlējušies būt peldošā punkta vērtības, ne tikai tāpēc, ka konsekvences ar pārējo mana programma - kas skaidri ietver peldošas punktu vērtības - bet tāpēc, ka izrādās, ka C, ja jūs sadalīt int cita int, rezultātā atbilde jūs gatavojas iegūt, ir pats int, pat ja tas nozīmē ņemot mest prom visu aiz komata. Citiem vārdiem sakot, ja es mainīt šo 5,0 līdz 5 vai tas 9,0-9, un pēc tam atkārtoti saglabāt mana programma, recompile ar make F uz C, un tad atkal palaist to ar dot slash F C un ierakstiet padevi, piemēram, 212, paziņojums, ka atbilde, ko es esmu gatavojas get šoreiz tiešām ir diezgan nepareizi. 0.0 nav pareizs grāds Celsija kā 212 Fārenheita. Nu, kas notiek? Nu, saskaņā 9, jo 5 tagad skaitlim un tāpēc 9 tagad skaitlis, rezultāts matemātiski būtu 0,5555 un tā tālāk. , Bet, jo rezultātus, saskaņā ar C ir noteikumi, ir jābūt veselam skaitlim, kas 0,5555 izpaužas izmet, atstājot mūs tikai ar 0. Tātad galu galā, es galu galā reizinot gluži nejauši 0 reizes f mīnus 32.0, kas ir vienalga ko vienmēr gatavojas sniegt man 0. Tātad, paturiet prātā, jebkurā laikā, izmantojot peldošā komata vērtības tuvumā ints, jūs varētu nebūt saņemt atbildi, lai jūs sagaida. Un tāpēc jārūpējas, lai izmantotu, kā es darīju Pirmajā gadījumā, peldošā punkta vērtības visu, lai izvairītos no šādiem jautājumiem.