DAVID J. Malan: Pandan w ap pwobableman konnen, tanperati yo mezire lè l sèvi avèk kal pwason sot diferan nan diferan pati nan mond lan. Pou egzanp, 212 degre Farennayt se 100 degre Sèlsiyis ak 32 degre Fahrenheit se 0 degre Sèlsiyis. Pa ta li dwe nice si nou te gen yon òdinatè pwogram ki pèmèt nou konvèti soti nan, di, Farennayt Sèlsiyis? Bon, nou ka ekri pwogram sa a. Se pou nou premye kòmanse ak gen ladan cs50.h, pou nou ka sèvi ak yon fonksyon rele jwenn flote, ki, tankou Pran Int, jwenn yon nimewo ki soti nan itilizatè a, men fwa sa a yon nimewo k ap flote pwen - yon sèl ak yon pwen desimal. Se pou yo te enkli ladan yo estanda io.h pou nou gen aksè a fonksyon tankou ekri ak lèt ​​detache f. Li kite yo tou deklare prensipal nan chemen an dabitid. Se pou yo kap vini an de motive-itilizatè a pou yon tanperati ki nan Fahrenheit. Se pou nou kounye a aktyèlman jwenn ke tanperati soti nan itilizatè a, premye pa deklare yon varyab rele f nan kalite flote. Yon flote, ankò, sa vle di yon varyab ki gen magazen yon valè k ap flote pwen, youn ki gen yon pwen desimal. Se pou yo bay li retounen nan valè de Pran flote. Lè sa a, se pou yo fè yon ti jan nan aritmetik sou li, premye deklare yon lòt flote rele C pou Sèlsiyis ak magazen nan C a rezilta nan kèk aritmetik komen. 5.0 divize pa 9.0 fwa F mwens 32.0. Se pou nou kounye a ekri ak lèt ​​detache rezilta a nan kalkil sa a. pousan f - siyifye yon kontneur pou k ap flote valè pwen - vigil C rive nan ekri ak lèt ​​detache soti nan tanperati nan Sèlsiyis. Se pou yo konsève pou final m 'yo. Sanble ak F desann nan C. kouri pwogram nan ak dot F koupe C. Li kite yo eseye sa yo komen tanperati. 212 degre nan Farennayt se 100 degre Sèlsiyis. 32 degre nan Fahrenheit se 0 degre nan Sèlsiyis. Koulye a, pèmèt rafine pwogram sa a yon ti kras ti jan pa pa enprime byen kòm anpil 0 a apre kote sa a desimal. Pou fè sa, mwen pral tounen nan liy 11. Apre sa, olye ke sèlman presize pousan f, Mwen pral olye presize, di, 0.1 f, enfòme ekri ak lèt ​​detache f pou m 'sèlman vle ekri ak lèt ​​detache yon valè k ap flote pwen nan yon sèl valè apre plas la desimal. Se pou yo resave pwogram m 'yo. Compile l 'ak fè F ak C. Lè sa a, relance l 'ak dot F koupe C. Apre sa, kite a rekoumanse ak, di, 212, ki ban m '100.0. Kounye a li nan vo anyen ki m 'te fè yon bagay trè fè espre nan liy 9. Avi sou jan mwen te ekri 5 se 5.0, 9 kòm 9.0, e menm 32 kòm 32.0. Oke, de nan premye nan valè sa yo yo te trè fè espre chwazi yo dwe valè k ap flote pwen, pa sèlman paske nan konsistans ak tout rès la nan pwogram mwen an - ki klèman enplike nan k ap flote valè pwen - men paske li sanble ke C, Si ou divize yon Int pa yon lòt Int, nan ki kapab lakòz repons w ap ale nan jwenn se tèt li yon Int, menm si sa vle di gen jete tout bagay apre pwen desimal la. Nan lòt mo, si mwen chanje sa a 5.0 5 oswa sa a 9.0 a 9 ak Lè sa a, resave pwogram m 'yo, compile ak fè F desann nan C, ak Lè sa a, re-kouri l 'ak dot koupe F C ak kalite nan yon antre tankou 212, remake ke repons lan mwen pral jwenn tan sa a se aktyèlman byen sa ki mal. 0.0 se pa degre ki kòrèk la nan Sèlsiyis kòm 212 Fahrenheit. Oke, sa k ap pase sou? Oke, nan liy 9, paske 5 se kounye a yon nonb antye ki pè e paske 9 se kounye a yon nonb antye ki pè, rezilta a matematik yo ta dwe 0,5555 ak sou sa. Men, paske se rezilta a, dapre Règ C a, ki gen yo dwe genyen yon Int, ki 0,5555 vin jete, kite nou ak jis 0. Se konsa, nan fen a, mwen fini miltipliye byen aksidantèlman 0 fwa f mwens 32.0, ki se pa gen pwoblèm sa toujou ale nan ban m '0. Se konsa, kenbe nan tèt ou, nenpòt ki lè lè l sèvi avèk valè k ap flote pwen nan pwoksimite nan antye, ou pa ta ka nesesèman jwenn repons lan pou ou atann. Se konsa, pran swen yo sèvi ak, menm jan mwen te fè nan la valè premye ka, pwen k ap flote nan tout pou fè pou evite nenpòt pwoblèm sa yo.