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