Programme c#
ElectroRobotica Messages postés 2 Date d'inscription Statut Membre Dernière intervention -
bonjour,je dois écrire un code qui doit convertir une température de 94 degrés fahreneit en dergrés celsius,voilà mon code :
int fahreneit = 94;
decimal celsius = (fahreneit - 32) * (5/9);
Console.WriteLine("la température en celsius est :" + celsius);
le problême quand je le compile il me marque : la température en celsius est 0.Pouvez vous m'aider,merci
- Programme c#
- Programme demarrage windows - Guide
- Message programmé iphone - Guide
- Mettre en veille un programme - Guide
- Programme word gratuit - Guide
- Cette action ne peut pas être réalisée car le fichier est ouvert dans un autre programme - Guide
2 réponses
Salut,
La division d'entier, en l'occurence 5 / 9 = 0.56 retourne un nombre entier, (l'arrondie se fait à l'entier inférieur, donc 0). Tu multiplies la température par ce zéro, Donc le résultat est 0.
Pour avoir le résultat avec un nombre à virgule, il faut que les opérandes le soient eux-mêmes (au moins un des deux), tu as des exemples avec différentes syntaxes ici :
Tu peut écrire :
(5.0/9.0) //ou ((float)5/9) //ou encore (5f/9f)
Cdlt.
Hello,
L'erreur réside dans le mauvais choix du type des variables pour le calculs dans CSharp. Quand vous écrivez (5/9)
, cela donne une division entière car 5
et 9
sont tous deux des entiers.
Pour corriger cela, vous devez changer votre code de calcul de la valeur celsius comme suit:
decimal celsius = (fahrenheit - 32) * (5.0m / 9.0m);
Pour encore mieux comprendre ce mécanisme, je vous invite à consulter la rubrique variables ici : https://electro-robot.com/programmation/le-codage
Cdt.
Bonjour,
Qui plus est et tant qu'à faire propre, il y a lieu d'écrire Fahrenheit avec le h manquant et un F majuscule parce que c'est le nom du mec qui l'a inventé, même chose pour la sortie écran en degrés Celsius pour la même raison et contrairement au kelvin qui bien que lui aussi du à un mec n'est pas un degré mais une unité qui s'écrit en minuscules.