DAVID J. Malan: Fel y gwyddoch mae'n debyg, tymheredd yn cael eu mesur gan ddefnyddio gwahanol raddfeydd mewn gwahanol rannau o'r byd. Er enghraifft, 212 gradd Fahrenheit yn 100 gradd Celsius a 32 gradd Fahrenheit yw 0 gradd Celsius. Oni fyddai'n braf pe bai gennym gyfrifiadur rhaglen sy'n caniatáu i ni drosi o, dyweder, Fahrenheit i Celsius? Wel, gallwn ysgrifennu y rhaglen honno. Gadewch i ni ddechrau yn gyntaf â nhw yn cynnwys cs50.h, fel y gallwn ddefnyddio'r swyddogaeth o'r enw cael arnofio, sydd, fel int gael, yn cael nifer o'r defnyddiwr, ond y tro hwn mae Rhif pwynt arnawf - un gyda phwynt degol. Gadewch i ni hefyd yn cynnwys io.h safonol fel ein bod yn cael mynediad i swyddogaethau fel print f. A gadewch i ni hefyd yn datgan prif yn y ffordd arferol. Gadewch i ni nesaf annog y defnyddiwr ar gyfer tymheredd yn Fahrenheit. Gadewch i ni yn awr mewn gwirionedd yn cael y tymheredd gan y defnyddiwr, yn gyntaf gan datgan newidyn a elwir yn f o'r math arnofio. Mae arnofio, unwaith eto, sy'n golygu newidyn sy'n storio gwerth pwynt arnawf, un gyda phwynt degol. Gadewch i neilltuo ei dychwelyd gwerth arnofio get. Ac yna gadewch i ni wneud ychydig o rifyddeg arno, gan ddatgan arnofio arall yn gyntaf a elwir yn C ar gyfer Celsius a storio yn C y ganlyniad i rai rifyddeg cyffredin. 5.0 wedi'i rannu gan 9.0 gwaith F minws 32.0. Gadewch i ni yn awr argraffu'r canlyniad o gyfrifiannu hwn. y cant f - dynodi yn cadw'r fel y bo'r angen gwerth pwynt - coma C i argraffu'r tymheredd mewn Celsius. Gadewch i achub fy derfynol. Llunio gyda F i C. Rhedeg y rhaglen gyda slaes dot F i C. A gadewch i ni geisio y rhai cyffredin tymheredd. 212 gradd mewn Fahrenheit yn 100 gradd Celsius. 32 gradd yn Fahrenheit yn 0 gradd Celsius yn. Nawr yn gadael i fireinio rhaglen hon ychydig bit drwy beidio â argraffu yn eithaf cymaint o 0 yn ar ôl hynny lle degol. I wneud hyn, yr wyf i'n mynd i mynd yn ôl i linell 11. Ac yn hytrach na dim ond nodi y cant f, Rydw i'n mynd i lle hynny bennu, dyweder, 0.1 f, hysbysu print f mai dim ond eisiau argraffu gwerth pwynt arnawf i un gwerth yn ôl y lle degol. Gadewch i ni resave fy rhaglen. Ail-grynhoi gyda gwneud F i C. Yna ailgynnal gyda slaes dot F i C. A gadewch i ailgeisio â, dyweder, 212, sy'n rhoi i mi 100.0. Nawr mae'n werth nodi bod y gwneuthum rhywbeth yn fwriadol iawn yn unol 9. Hysbysiad sut Ysgrifennais 5 yn 5.0, 9 fel 9.0, a hyd yn oed 32 fel 32.0. Wel, y ddau gyntaf o'r gwerthoedd hynny yn iawn dewis yn fwriadol i fod yn Gwerthoedd pwynt arnawf, nid yn unig oherwydd cysondeb gyda gweddill fy rhaglen - sydd yn amlwg yn golygu fel y bo'r angen Gwerthoedd pwynt - ond oherwydd ei fod yn troi allan y C, Os ydych yn rhannu yn int gan int arall, y deillio ateb rydych yn mynd i gael yw hun yn int, hyd yn oed os yw hynny'n golygu gorfod taflu popeth ar ôl y pwynt degol. Mewn geiriau eraill, os byddaf yn newid hyn 5.0 i 5 neu hyn 9.0-9 ac yna resave fy rhaglen, ail-grynhoi â gwneud F i C, ac yna ail-redeg gyda dot slaes F i C a theipiwch mewnbwn o fel 212, sylwi bod yr ateb Rydw i'n mynd i cael y tro hwn mewn gwirionedd yn eithaf anghywir. 0.0 Nid yw'r elfen gywir yn Celsius fel 212 Fahrenheit. Wel, beth sy'n mynd ymlaen? Wel, yn unol 9, gan fod 5 bellach yn cyfanrif ac oherwydd 9 bellach yn cyfanrif, y canlyniad fathemategol Dylai fod yn 0.5555 ac yn y blaen. Ond oherwydd bod y canlyniad, yn ôl Rheolau C, rhaid iddo fod yn int, bod 0.5555 yn cael ei daflu i ffwrdd, ein gadael gyda dim ond 0. Felly, yn y diwedd, yn y diwedd yn lluosi eithaf ddamweiniol 0 gwaith f minws 32.0, sydd yn waeth beth bob amser yn mynd i roi i mi 0. Felly, yn cadw mewn cof, unrhyw amser gan ddefnyddio Gwerthoedd pwynt arnawf yn agos o ints, efallai nad ydych o reidrwydd yn gael yr ateb er mwyn i chi ei ddisgwyl. Ac felly yn cymryd gofal i ddefnyddio, fel y gwneuthum yn y gwerthoedd achos cyntaf, pwynt arnawf drwy gydol er mwyn osgoi unrhyw faterion o'r fath.