Version sans JavaScript, en lecture seule : les ateliers, les quiz et l’exécution du code n’y sont pas. Version complète · Catalogue · Se connecter

Séquence

Pourquoi int x = 10.5 est refusé

Socle

Dans le fichier, la ligne int x = 10.5; est en commentaire. Décommentez-la et lancez : lisez le message du compilateur. Puis corrigez de deux façons : valeurExacte() doit renvoyer 10.5 sans rien perdre, et valeurTronquee() doit renvoyer 10 en demandant explicitement la conversion.

Ici, un atelier : on y écrit et on y exécute du code. Il demande JavaScript.

Code de départ

Exercices.java

public class Exercices {

    public static void main(String[] args) {
        // Decommentez la ligne suivante et lancez pour lire l'erreur :
        // int x = 10.5;

        System.out.println(valeurExacte());
        System.out.println(valeurTronquee());
    }

    public static double valeurExacte() {
        // TODO : renvoyer 10.5 sans perte
        return 0;
    }

    public static int valeurTronquee() {
        // TODO : renvoyer 10.5 converti en int
        return 0;
    }
}

Le socle se valide dans l’atelier, qui demande JavaScript.

Indice 1

10.5 est un double. Java refuse de le ranger dans un int tout seul, car il y aurait perte d’information : il exige que vous le demandiez avec (int).