DAVID J. MALAN: Kuten ehkä tiedätte, lämpötilat mitataan eri mittakaavoissa eri puolilla maailmaa. Esimerkiksi 212 celsiusta on 100 astetta ja 32 astetta Fahrenheit on 0 astetta. Eikö olisi mukavaa, jos meillä olisi tietokone ohjelma, joka antoi meille mahdollisuuden muuntaa vaikkapa Fahrenheit Celsius? No, voimme kirjoittaa, että ohjelma. Katsotaanpa ensin aloittaa kuuluvat cs50.h, jotta voimme käyttää toimintoa kutsutaan saada float, joka, kuten get int, saa numero käyttäjältä, mutta tällä kertaa liukuluku - yksi kanssa desimaalin tarkkuudella. Katsotaanpa myös vakio io.h niin että meillä on pääsy toimintoja, kuten print f. Ja antaa myös julistaa tärkein tavalliseen tapaan. Katsotaanpa seuraavaksi pyytää käyttäjältä lämpötila Fahrenheit. Katsotaanpa nyt itse saada, että lämpötila käyttäjältä, ensin julistamisesta muuttuja nimeltä f tyypin float. Float, jälleen, eli muuttuja, joka tallentaa Liukulukuarvo, yksi desimaalin tarkkuudella. Katsotaanpa määrittää sen tuotto arvo get float. Ja sitten Tehdäänpä hieman aritmeettinen sitä, ensin julistaa toisen juoksun nimeltään C Celsius ja säilytä C seurausta joidenkin yhteisestä laskutavasta. 5,0 jaettuna 9,0 kertaa F miinus 32,0. Katsotaanpa nyt tulostaa tuloksen Tämän laskennan. prosenttia f - merkitsee paikanpitäjä Liukulukuarvo - pilkku C tulostaa lämpötila Celsius. Säästetään viimeinen. Kokoa kanssa F C. Aja ohjelma Piste slash F C. Ja yritetään näiden yhteisten lämpötiloissa. 212 astetta Fahrenheit on 100 astetta. 32 astetta Fahrenheit on 0 astetta Celsiusta. Nyt avulla tarkentaa tätä ohjelmaa hieman vähä tulostus ei ole aivan niin monta 0 jälkeen desimaalin tarkkuudella. Voit tehdä tämän, aion palata linja 11. Ja sen sijaan vain määrittää prosenttia f, Aion sen sijaan määritellä vaikkapa 0,1 f, ilmoitettuaan tulostaa f että olen vain haluat tulostaa Liukulukuarvo yhden arvon jälkeen desimaalin tarkkuudella. Katsotaanpa tallenna oma ohjelma. Kääntää se make F C. Sitten uusintana se piste slash F C. Ja Katsotaanpa Yritä uudelleen vaikkapa 212, joka antaa minulle 100,0. Nyt on syytä huomata, että tein jotain hyvin tietoisesti linjassa 9. Huomaa kuinka Kirjoitin 5 on 5,0, 9 kuten 9.0, ja jopa 32 kuin 32,0. No, kahden ensin mainitun arvot olivat hyvin tietoisesti valinnut olla liukulukuarvoja, ei vain siksi, johdonmukainen loput minun ohjelma - joka selvästi liittyy kelluva pistearvot - mutta koska näyttää siltä, ​​että C, Jos jakaa int toisen int, Saatu vastaus aiot saada on itse int, vaikka keinot ottaa heittää pois kaiken desimaalipilkun jälkeen. Toisin sanoen, jos tämä muuttaa 5.0 5 tai tätä 9,0-9 ja tallenna sitten minun ohjelma, käännä uudelleen tehdä F C, ja sitten uusinnassa se piste slash F C ja kirjoita tuloon, kuten 212, huomaa, että vastaus aion saada tämä aika on oikeastaan ​​aivan väärä. 0.0 ei ole oikea tutkinto Celsius olevan 212 Fahrenheit. No, mitä on tekeillä? No, linja 9, koska 5 on nyt kokonaisluku ja koska 9 on nyt kokonaisluku, tulos matemaattisesti tulisi olla 0,5555 ja niin edelleen. Mutta koska tulos mukaan C: n sääntöjä, on oltava int, että 0,5555 saa heittää pois, jättäen meille vain 0. Joten loppujen lopuksi, en päätyä kertomalla aivan vahingossa 0 kertaa f miinus 32,0, mikä on mitä aina menossa antaa minulle 0. Joten älä pitää mielessä, milloin tahansa käyttäen liukulukuarvoja läheisyyteen ints, et ehkä välttämättä saat vastauksen niin odotat. Ja niin huolehtia käyttää, kuten tein Ensimmäisessä tapauksessa liukuluvuiksi koko vältetään tällaisia ​​kysymyksiä.