Девід Дж. Малан: Як ви, напевно, знаєте, температура вимірюється за допомогою різні масштаби в різні частинах світу. Наприклад, 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. Так що майте на увазі, в будь-який час за допомогою значення з плаваючою комою в близькості Інтс, ви не могли б обов'язково отримати відповідь, так що ви очікуєте. І тому подбайте, щоб використовувати, як я зробив у значення перший випадок, з плаваючою точкою з усього, щоб уникнути будь-яких таких питань.