David J. MALAN: Mint azt bizonyára tudják, hőmérséklet mérése különböző méretekben, különböző részein a világ. Például a 212 fok Fahrenheit 100 Celsius fok és 32 fok Fahrenheit 0 Celsius fok. Nem lenne jó, ha lenne egy számítógép program, amely lehetővé tette, hogy átalakítani a, mondjuk, Fahrenheit a Celsius? Nos, tudjuk írni a programot. Nézzük először kezdeni közé cs50.h, hogy ki tudjuk használni a függvényt hívott kap úszó, amely, mint kap int, kap egy számot a felhasználó, de ezúttal egy lebegőpontos szám - egy a tizedespont. Nézzük is szokásos io.h , hogy mi férhet hozzá funkciók, mint a print f. És nézzük azt is kijelentik fő a szokásos módon. Nézzük a következő megkérdezi a felhasználót a a hőmérséklet Fahrenheit. Nézzük most tényleg kap, hogy a hőmérséklet a felhasználó, először nyilvánító nevű változó f típusú úszó. Az úszó, megint, vagyis olyan változó, amely tárolja a lebegőpontos érték, az egyik egy tizedes pontossággal. Nézzük hozzá, hogy a visszatérő értéke lebegőpontos. És akkor lássuk egy kicsit a számtani rajta, először kijelentette egy másik úszó úgynevezett C Celsius és tárolja a C- eredményeként néhány közös számtani. 5.0 osztva 9,0-szor F mínusz 32,0. Nézzük most az eredmény nyomtatható Ezen számítás. százalék f - jelezve a helyőrző lebegőpontos érték - vessző C, hogy nyomtassa ki a hőmérséklet Celsius. Mentsük az utolsó. Töltsd ki az F C futtatni a programot A dot slash F C És próbáljuk meg azokat a közös hőmérsékleten. 212 fok Fahrenheit 100 Celsius fok. 32 fok Fahrenheit 0 fok Celsius. Most pedig finomítani a program egy kicsit bit, hogy nem nyomtat elég annyi a 0- után tizedes. Ehhez fogom menj vissza line 11. És ahelyett, hogy csak adja százalék f, Megyek helyett adja meg, mondjuk, 0,1 f, tájékoztatta print f, hogy én csak kíván nyomtatni egy lebegőpontos értéket az egyik érték a tizedes pont utáni. Nézzük mentse a programot. Újrafordítását azt make F C, majd futtassa újra azt dot slash F C és nézzük újra, mondjuk, 212, ami nekem 100,0. Most érdemes megjegyezni, hogy én valami nagyon tudatosan a 9. sorban. Figyeljük meg, hogy írtam 5 5.0, 9 mint 9.0, és még 32-32.0. Nos, az első két ilyen értékek nagyon tudatosan választották, hogy lebegőpontos értékek, és nem csak azért, mert A következetesség a többi A programom - amely egyértelműen magában lebegő pont értékek - hanem azért, mert kiderül, hogy a C, ha felosztjuk az int másik int, a így választ fogsz kapni a maga is int, akkor is, ha ez azt jelenti , hogy dobja el mindent a tizedesvessző után. Más szóval, ha ezen változtatni 5.0 5 vagy az e 9,0-9 majd mentse a program egy újrafordítás a make F C, majd futtassa újra azt dot slash F C, és írja be a bemeneti, mint 212, észre, hogy a válasz fogok hogy ezúttal tényleg nagyon rossz. 0.0 nem a megfelelő mértékben a Celsius mint 212 Fahrenheit. Nos, mi folyik itt? Nos, a 9. sorban, mert 5 ma már egész és mivel a 9. most egy egész szám, az eredmény matematikailag 0,5555 legyen, és így tovább. De mivel az eredmény szerint C szabályai, van, hogy egy int, hogy 0,5555 lesz eldobni, így nekünk csak 0-ra. Így a végén, én a végén szorozni egészen véletlenül 0 alkalommal f mínusz 32,0, ami nem számít, hogy milyen mindig fog adni nekem 0-ra. Tehát ne feledje, minden alkalommal a lebegőpontos értékek közelében ints, lehet, hogy nem feltétlenül kap választ, így várható. És így vigyázni kell használni, mint én, a első esetben, lebegőpontos értékek az egész, hogy elkerüljék az ilyen kérdéseket.