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