Pourquoi NaN??????

Martial -  
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   -
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 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020
 
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 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
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
Utilisateur anonyme
 
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 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752 > Utilisateur anonyme
 
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