Adloun

programmation Java (école d'ingénieur) · Chapitre 2 · Application directe du cours

Une moyenne fausse

Types, variables et expressions · niveau 2

Énoncé

Un élève a obtenu , et . Le programme suivant affiche 13.0. Pourquoi ? Le corriger pour obtenir la vraie moyenne, puis l'afficher avec deux décimales.


int n1 = 12, n2 = 15, n3 = 14;
double moyenne = (n1 + n2 + n3) / 3;
System.out.println(moyenne);

Corrigé

n1 + n2 + n3 vaut l'entier ; 41 / 3 est une division entre deux int, qui donne . Ce n'est qu'ensuite que est converti en double pour être rangé dans moyenne : la partie décimale est déjà perdue.


public class Moyenne {
    public static void main(String[] args) {
        int n1 = 12, n2 = 15, n3 = 14;
        double fausse = (n1 + n2 + n3) / 3;
        double juste = (n1 + n2 + n3) / 3.0;
        System.out.println(fausse);
        System.out.println(juste);
        System.out.printf("%.2f%n", juste);
    }
}

13.0
13.666666666666666
13.67

On aurait aussi pu écrire (double) (n1 + n2 + n3) / 3. Le type de la variable de gauche n'a aucune influence sur le calcul de droite.

100 % gratuit

La suite du chapitre est sur Adloun

Exercice suivant et tuteur

Sans compte : le cours, le premier QCM et 2 minutes de podcast et de vidéo. Exercices et tuteur : inscription gratuite en 30 secondes, sans carte bancaire.

Le cours du chapitre · Tous les exercices du chapitre

Exercice suivant et tuteur →