>> 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.