DAVID J. Malan: Kama pengine kujua, joto ni kipimo kwa kutumia mizani tofauti katika mbalimbali sehemu ya dunia. Kwa mfano, digrii 212 Fahrenheit ni 100 digrii Celsius na digrii 32 Fahrenheit ni 0 nyuzi. Je, si ni kuwa nzuri kama tulikuwa na kompyuta mpango huo alituruhusu kubadili kutoka, kusema, Fahrenheit kwa Celsius? Naam, tunaweza kuandika mpango huo. Hebu kwanza kuanza na ni pamoja na cs50.h, ili tuweze kutumia kazi kuitwa kupata kuelea, ambayo, kama kupata int, anapata idadi kutoka kwa mtumiaji, lakini hii a wakati yaliyo hatua ya simu - moja na ya uhakika decimal. Hebu pia ni pamoja na kiwango io.h hivyo kwamba tuna upatikanaji wa kazi kama magazeti f. Na hebu pia kutangaza kuu katika njia ya kawaida. Hebu ijayo haraka user kwa joto katika Fahrenheit. Hebu sasa kweli kupata kwamba hali ya joto kutoka kwa mtumiaji, kwanza kwa kutangaza variable kuitwa f ya aina kuelea. kuelea, tena, maana variable kwamba maduka yaliyo hatua thamani, moja na hatua ya decimal. Hebu hawawajui kurudi thamani ya kupata kuelea. Na kisha hebu kufanya kidogo ya hesabu juu yake, kwanza kutangaza kuelea mwingine aitwaye C kwa Celsius na kuhifadhi katika C matokeo ya baadhi ya hesabu ya kawaida. 5.0 kugawanywa kwa mara 9.0 F minus 32.0. Hebu sasa magazeti matokeo ya hesabu hii. asilimia f - akionyesha placeholder kwa yaliyo hatua thamani - comma C magazeti nje joto katika Celsius. Hebu kuokoa mwisho wangu. Kukusanya na F kwa C. kukimbia mpango na dot slash F C. Na hebu jaribu wale kawaida joto. Digrii 212 Fahrenheit katika ni nyuzi 100 Celsius. Nyuzi 32 katika Fahrenheit ni 0 digrii katika Celsius. Sasa lets kuboresha mpango huu kidogo kidogo na si uchapishaji kabisa kama wengi 0 ya baada ya kuwa mahali decimal. Kwa kufanya hivyo, mimi nina kwenda kwenda nyuma ya mstari wa 11. Na badala ya kutaja asilimia f, Mimi nina kwenda badala bayana, kusema, 0.1 f, taarifa magazeti f kwamba mimi tu unataka magazeti yaliyo hatua thamani kwa thamani moja baada ya mahali decimal. Hebu resave mpango wangu. Recompile ni pamoja na kufanya F C. Kisha rerun ni pamoja na dot slash F C. Na hebu jaribu tena na, kusema, 212, ambayo inatoa mimi 100.0. Sasa ni thamani kubainisha kwamba mimi kitu kwa makusudi sana katika line 9. Taarifa jinsi niliandika 5 ni 5.0, 9 kama 9.0, na hata 32 kama 32.0. Naam, kwanza wawili wa maadili hayo walikuwa sana kwa makusudi amechaguliwa kuwa maadili yaliyo uhakika, si kwa sababu tu ya uthabiti na wengine ya mpango wangu - ambayo ni wazi inahusisha yaliyo hatua maadili - lakini kwa sababu zinageuka kuwa C, Kama kugawanya int na mwingine int, kusababisha jibu wewe ni kwenda kupata ni yenyewe int, hata kama njia kuwa na kutupa kila kitu baada ya uhakika decimal. Kwa maneno mengine, kama mimi kubadili hali hii 5.0 kwa 5 au hii 9.0-9 na kisha resave mpango wangu, recompile na kufanya F C, na kisha re-kuendesha kwa dot slash F kwa C na aina katika mchango wa kama 212, taarifa kwamba jibu mimi nina kwenda kupata wakati huu ni kweli sawa kabisa. 0.0 ni si shahada sahihi katika Celsius kama 212 Fahrenheit. Naam, ni nini kinaendelea? Naam, katika line 9, kwa sababu 5 ni sasa integer na kwa sababu 9 ni sasa integer, matokeo hesabu lazima 0.5555 na kadhalika. Lakini kwa sababu matokeo, kwa mujibu wa Sheria C, ina kuwa int, kwamba 0.5555 anapata kutupwa mbali, kuacha yetu na 0 tu. Hivyo katika mwisho, mimi kuishia kuzidisha kabisa ajali 0 mara f minus 32.0, ambayo ni bila kujali daima kwenda nipe 0. Hivyo kukumbuka, wakati wowote kwa kutumia maadili yaliyo hatua katika ukaribu wa ints, huenda si lazima kupata jibu hivyo kutarajia. Na hivyo kuchukua huduma kwa kutumia, kama mimi katika maadili kesi ya kwanza, floating hatua katika ili kuepuka masuala yoyote hayo.