Problème de calcul JAVA

Résolu
Endernite Messages postés 79 Date d'inscription   Statut Membre Dernière intervention   -  
Endernite Messages postés 79 Date d'inscription   Statut Membre Dernière intervention   -
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 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020
 
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 79 Date d'inscription   Statut Membre Dernière intervention   13
 
Merci pour ta réponse rapide et pour avoir fixé mon problème :)
bonne soirée
0