Programme c#

TESCHAN66 -  
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

2 réponses

T3chN0g3n Messages postés 5247 Date d'inscription   Statut Membre Dernière intervention   1 179
 

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 :

https://learn.microsoft.com/fr-fr/dotnet/csharp/language-reference/operators/arithmetic-operators#division-operator-

Tu peut écrire :

(5.0/9.0)
//ou
((float)5/9)
//ou encore
(5f/9f)

Cdlt.

0
brucine Messages postés 21833 Date d'inscription   Statut Membre Dernière intervention   3 468
 

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.
 

0
ElectroRobotica Messages postés 2 Date d'inscription   Statut Membre Dernière intervention  
 

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.


0