Pourquoi NaN??????

Fermé
Martial - Modifié le 11 déc. 2019 à 15:40
jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 - 11 déc. 2019 à 22:34
Bonjour,
mon programme sert a résoudre une équation de degré 2 mais quand je tape certaine valeur il me répond NaN, j'aimerais savoirs ou ce problème ce situe et comment le régler.
voici mon programme :

import java.util.Scanner;

/* ce programme calcul la résolution
* d'une équation de second degré.
* a *x² + b * x +c */

public class modif_java_test {

 public static void main(String[] args) {
  
  // #1 - Déclaration des variables.
  float a; //Déclaration d'un entier.
  float b; //Déclaration d'un entier.
  float c; //Déclaration d'un entier.
  double x1; //Déclaration d'un réel.
  double x2; //Déclaration d'un réel.
  double delta; //Déclaration d'un réel.
    
  //#2 - Initialisation des variables a, b et c.
  Scanner clavier = new Scanner(System.in);
  System.out.println("entrer la valeur de a :");
  a = clavier.nextFloat();
  System.out.println("entrer la valeur de b :");
  b = clavier.nextFloat();
  System.out.println("entrer la caleur de c :");
  c = clavier.nextFloat();
    
  //#3 - Calcul de delta.
  delta = (b * b) - (4 * a * c);
    
  //#4 - Calcul de x1 et x2.
  x1 = (-b + Math.sqrt(delta))/(2 *a);
  x2 = (-b - Math.sqrt(delta))/(2 *a);
    
  // #5 -Affichage du résultat.
  System.out.println("Racine 1 = " + x1);
  System.out.println("Racine 2 = " + x2);
  
  clavier.close();
 }

}


ce programme n'est pas fini
Merci d'avance pour vos réponse.
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
11 déc. 2019 à 17:12
Bonjour,

NaN peut être obtenu après un calcul interdit : division par zéro, racine carré d'un nombre négatif, etc.
0
jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650
11 déc. 2019 à 21:17
Bonjour,

Le souci n'arriverait t'il pas lorsque ta variable delta est négative ?
Il faut utiliser la valeur absolue.... car la racine carrée d'un nombre négatif ça n'existe pas (sauf dans les nombres complexes.. mais ce n'est pas le cas de ton calcul...)

0
Whismeril Messages postés 19029 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 26 avril 2024 931
11 déc. 2019 à 21:56
Salut, oui, mais non.
Il ne faut pas utiliser la valeur absolue.
Si Delta est négatif, il n'y a pas de solution réelle.
0
jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650 > Whismeril Messages postés 19029 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 26 avril 2024
11 déc. 2019 à 22:34
je me suis concentré sur l'erreur pas son utilisation.
mais en fait si, il existe deux solutions....complexes
mais bon ça fait longtemps que je n'ai pas joué avec ces formules :-)
0