Дэвід Дж. Малан: Як вы, напэўна, ведаеце, тэмпература вымяраецца з дапамогай розныя маштабы ў розныя частках свету. Напрыклад, 212 градусаў па Фарэнгейце з'яўляецца 100 градусаў па Цэльсіі і 32 градусаў Фарэнгейце 0 градусаў Цэльсія. Не было б нядрэнна, калі б у нас быў кампутар праграма, якая дазволіла нам пераўтварыць, скажам, па Фарэнгейце у градусы Цэльсія? Ну, мы можам напісаць гэтую праграму. Давайце спачатку пачнём з ўключаюць cs50.h, так што мы можам выкарыстоўваць функцыю з імем атрымаць паплавок, які, як і кароткатэрміновы Int, атрымлівае лік ад карыстальніка, але на гэты раз лік з якая плавае кропкай - адзін з коскі. Давайце таксама ўключаюць у сябе стандартныя io.h так што мы маем доступ да функцыі, такія як друк ф. І давайце таксама абвясціць галоўным звычайным спосабам. Давайце наступны запытваць у карыстальніка тэмпература ў градусах Фарэнгейта. Давайце цяпер на самай справе атрымаць, што тэмпература ад карыстальніка, спачатку абвясціўшы зменную е тыпу паплаўка. Паплавок, зноў жа, гэта азначае, зменную, якая захоўвае значэнне з якая плавае коскі, адзін з коскі. Давайце прысвоіць яму вяртанне кошт кароткатэрміновага паплаўка. А потым давайце зробім трохі арыфметыкі на ім, у першую абвясціўшы іншы паплавок называецца C для Цэльсіі і захоўваць у C вынікам некаторай агульнай арыфметыкі. 5.0 падзеленае на 9.0 разы F мінус 32,0. Давайце зараз раздрукаваць вынік з гэтага вылічэнні. адсоткаў е - якое азначае запаўняльнік для значэнне з якая плавае кропкай - коска C раздрукаваць тэмпература ў градусах Цэльсія. Давайце выратаваць маю фінал. Кампіляцыя з F на C. Запусціце праграму з кропкавай слэш F ў C. І давайце паспрабуем тыя агульныя тэмпература. 212 градусаў па шкале Фарэнгейта 100 градусаў па Цэльсіі. 32 градуса па шкале Фарэнгейта з'яўляецца 0 градусаў па шкале Цэльсія. Зараз давайце ўдакладніць гэтую праграму трохі трохі, ня друк даволі столькі 0-х пасля гэтага знака пасля коскі. Каб зрабіць гэта, я збіраюся вярнуцца да лініі 11. І замест таго, проста пакажыце працэнтнае е, Я збіраюся замест пазначыць, скажам, 0,1 у, інфармаванне друку е, што толькі я хочаце надрукаваць значэнне з якая плавае коскі аднаму значэнні пасля коскі. Давайце захаваеце маю праграму. Перекомпилируйте яго з макіяжам F ў C. Тады паўторна яго кропка слэш F да С. І давайце паўтарыць, скажам, 212, што дае мне 100,0. Цяпер варта заўважыць, што я зрабіў нешта вельмі свядома ў радку 9. Звярніце ўвагу, як я напісаў 5 складае 5,0, 9 як 9,0, і нават 32, як 32,0. Ну, першыя два з гэтых каштоўнасцяў былі цалкам свядома абраны, каб быць значэння з якая плавае кропкай, а не толькі таму, што ўзгодненасці з астатнімі маёй праграмы - у якім выразна прадугледжвае плавае кропкавыя значэння - а таму, што атрымліваецца, што C, калі вы падзяліць Int іншым Int, у выніку адказ вы збіраецеся атрымаць гэта Сам унутр, нават калі гэта азначае таго, каб выкінуць усе пасля коскі. Іншымі словамі, калі я змяню гэты 5,0 да 5 ці гэта ад 9,0 да 9, а затым захавайце мая праграма, перакампіляваць з макіяжам F да C, , А затым зноў запусціць яго з кропка слэш F да З і ўвядзіце уваходам, як 212, заўважыць, што адказ я збіраюся атрымаць на гэты раз на самай справе зусім не так. 0.0 не з'яўляецца правільным ступень у Цэльсія, як 212 па Фарэнгейце. Ну, што адбываецца? Ну, у радку 9, таму што 5 цяпер цэлы лік, а таму, што 9 Цяпер цэлае, то вынік матэматычна павінен быць 0,5555 і так далей. Але так як вынік, у адпаведнасці з Правілы Сі, павінен быць унутр, што 0,5555 атрымлівае выкінутыя, пакідаючы нас з проста 0. Такім чынам, у рэшце рэшт, я ў канчатковым выніку множання цалкам выпадкова 0 раз е мінус 32.0, якая ёсць не што нягледзячы ні на што заўсёды дасць мне 0. Так што майце на ўвазе, у любы час з дапамогай значэння з якая плавае коскі ў блізкасці Інтс, вы не маглі б абавязкова атрымаць адказ, так што вы чакаеце. І таму паклапаціцеся, каб выкарыстоўваць, як я зрабіў у значэнні першы выпадак, з якая плавае кропкай па ўсім, каб пазбегнуць любых такіх пытанняў.