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