>> DAVID J. Malan: Comme vous le savez probablement, Les températures sont mesurées à l'aide
différentes échelles différentes parties du monde.
Par exemple, 212 degrés Fahrenheit est 100 degrés Celsius et 32 ​​degrés
Fahrenheit est de 0 degrés Celsius.
Ce ne serait pas bien si nous avions un ordinateur programme qui nous a permis de
convertir, par exemple, Fahrenheit en degrés Celsius?
>> Eh bien, nous pouvons écrire ce programme.
Voyons d'abord commencer par comprendre cs50.h, de sorte que nous pouvons utiliser une fonction appelée
obtenir flotteur, qui, comme get int, obtient un numéro de l'utilisateur, mais cette fois-ci un
nombre à virgule flottante - un avec un point décimal.
>> Disons comprennent également io.h norme de sorte que nous avons accès à
fonctions comme print f.
Et nous allons déclarer également le principal de la manière habituelle.
>> Disons prochaine inviter l'utilisateur à une température en degrés Fahrenheit.
Voyons maintenant réellement obtenir que la température à partir de l'utilisateur, d'une part par
déclarer une variable appelée f de type float.
Un flotteur, encore une fois, ce qui signifie une variable qui stocke une valeur en virgule flottante,
une avec un point décimal.
>> Assignons il le retour valeur de get flotteur.
Et puis nous allons faire un peu de calcul sur elle, déclarant abord une autre flotteur
appelé C pour Celsius et magasin dans le C résultat d'un calcul commun.
5.0 divisé par 9,0 fois F moins 32,0.
>> Voyons maintenant imprimer le résultat de ce calcul.
pour cent f -
signifiant un espace réservé pour valeur en virgule flottante -
virgule C pour imprimer le température en degrés Celsius.
Sauvons ma dernière.
Compiler avec F à C. Exécutez le programme avec le point slash F à C.
>> Et nous allons essayer celles qui sont communes températures.
212 degrés en degrés Fahrenheit est de 100 degrés Celsius.
32 degrés en degrés Fahrenheit est 0 degrés Celsius en.
>> Maintenant passons à affiner un peu ce programme peu à ne pas imprimer tout autant des 0
après que décimale.
Pour ce faire, je vais revenir à la ligne 11.
Et plutôt que de simplement indiquer pour cent f, Je vais préciser la place, par exemple,
0,1 f, informer f impression que je ne vouloir imprimer une valeur à virgule flottante
à une valeur après la virgule.
>> Disons réenregistrer mon programme.
Recompiler avec make F à C. Ensuite, relancer avec point barre F à C. Et
nous allons réessayer avec, disons, 212, ce qui me donne 100,0.
>> Maintenant, il est intéressant de noter que j'ai fait quelque chose de très délibérément à la ligne 9.
Remarquez comment j'ai écrit 5 est 5.0, 9 que 9,0, et même 32 que 32,0.
Eh bien, les deux de ces valeurs premières sont très délibérément choisi d'être
des valeurs en virgule flottante, non seulement parce de cohérence avec le reste
de mon programme -
ce qui implique clairement flottante valeurs de point -
mais parce qu'il s'avère que C, si vous diviser un int par un autre int, la
réponse obtenue, vous allez obtenir est lui-même un int, même si ce moyen
avoir à jeter tout après la virgule.
>> En d'autres termes, si je change ce 5,0 à 5 ou ce 9,0 à 9 et puis réenregistrer
mon programme, recompiler avec make F à C, et puis re-exécuter avec slash point F
à C et tapez une entrée comme 212, remarquer que la réponse que je vais
obtenir ce temps est en fait tout à fait tort.
0.0 n'est pas la bonne mesure dans Celsius Fahrenheit 212 comme.
>> Eh bien, ce qui se passe?
Eh bien, à la ligne 9, car 5 est maintenant une entier et que 9 est maintenant une
entier, le résultat mathématique devrait être 0,5555 et ainsi de suite.
Mais parce que le résultat, selon Les règles de C, doit être un entier, qui
0,5555 se jette pas, nous laissant avec seulement 0.
>> Donc à la fin, je me retrouve en multipliant tout à fait accidentellement 0 fois f moins
32,0, ce qui est peu importe ce que aller toujours de me donner 0.
Donc, gardez à l'esprit, à tout moment à l'aide valeurs à virgule flottante à proximité de
ints, vous ne pourriez pas nécessairement obtenir la réponse que vous attendez.
Et afin de prendre soin d'utiliser, comme je l'ai fait dans le valeurs premier cas, virgule flottante
tout au long d'éviter de tels problèmes.