Problème de calcul JAVA

Résolu/Fermé
Endernite Messages postés 78 Date d'inscription jeudi 20 décembre 2012 Statut Membre Dernière intervention 1 septembre 2016 - Modifié par KX le 25/07/2014 à 21:17
Endernite Messages postés 78 Date d'inscription jeudi 20 décembre 2012 Statut Membre Dernière intervention 1 septembre 2016 - 25 juil. 2014 à 21:37
Bonsoir,
au cours d'un exercice proposé par mon instructeur d'informatique, je devais réaliser un convertisseur Fahrenheit vers Celsius..
J'ai une erreur de calcul à la ligne 23 de ce code:

public static void main(String[] args) {
                //TITRE
                System.out.print("#####################################\\n#   CONVERTISSEUR DE TEMPERATURES   #\\n#     25/07/2014 By Luca Saliola    #\\n#####################################");
                Scanner s = new Scanner (System.in) ;
                System.out.print("\\nVeuillez choisir un mode de conversion :");
                System.out.print("\\n 1 - Fahrenheit - Celcius \\n 2 - Celcius - Fahrenheit\\n");
                //Sélection
                byte inputselec = s.nextByte();
                switch (inputselec) {
                case 1:
                        System.out.print("Vous avez choisi de convertir de F° vers C°\\n");
                        System.out.println("Choisir une valeur (F°) à convertir :");
 //Calcul de F -> C
                        int inputnumbf = s.nextInt();
                        int celcius = ((inputnumbf - 32)/1)*(5/9);
                        System.out.print(inputnumbf + "F° Equivalent à " + celcius + " degrès celcius");
                        break;
                case 2:
                    System.out.print("Vous avez choisi de convertir de C° vers F°\\n");
                    System.out.println("Veuillez choisir une valeur (C°) à convertir");
//Calcul de C -> F                 
                    int inputnumbc = s.nextInt();
                    int fahren = (9/5) * inputnumbc + 32;
                    System.out.print(inputnumbc + "C° Equivalent à " + fahren + "degrés fahrenheit");
                    break;
                    default:
                        System.out.print("Veuillez indiquer des valeurs chiffrées correctes !");
                }
                       
                       
                       
                       
                }
               
               
 
        }


Quand je lui demande de changer les F° en C°, le résultat n'est pas correct (testé avec plusieurs valeurs : 50 -> 82 alors que c'est 50 -> 122)
Pouvez-vous s'il vous plait me dire ce qui ne va pas dans ma formule ?
Voici les formules utilisé F=9/5PC+32
C+(F-32)*5)/9
A voir également:

2 réponses

KX Messages postés 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 3 015
25 juil. 2014 à 21:20
Bonjour,

9 et 5 sont des entiers, donc 9/5 est une division entière dont le résultat est 1.

Soit tu travailles avec des valeurs réelles (float ou double), soit il faut t'arranger pour que les divisions entières se passent bien, ici en calculant d'abord la multiplication :

int fahren = (9 * inputnumbc)/5 + 32;
2
Endernite Messages postés 78 Date d'inscription jeudi 20 décembre 2012 Statut Membre Dernière intervention 1 septembre 2016 13
25 juil. 2014 à 21:37
Merci pour ta réponse rapide et pour avoir fixé mon problème :)
bonne soirée
0