Pourquoi NaN??????

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.

2 réponses

  1. Modérateur
    Bonjour,

    NaN peut être obtenu après un calcul interdit : division par zéro, racine carré d'un nombre négatif, etc.
    0
    1. Modérateur
      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
      1. 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
      2. Modérateur
        @Utilisateur anonymeje 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