Math.sqrt показывает необъяснимую ошибку в затмении при попытке решить уравнение второй степени

Я пытаюсь создать программу, которая решает уравнения второй степени (ax 2 + bx + c = 0). Он отлично работает, когда я удаляю Math.sqrt(delta), но его наличие — очень важная часть процесса, и я не могу понять, почему он не работает.

Когда я запускаю программу, она выдает мне X1 = NanX2 = Nan в конце.

public static void main(String[] args) {
    double a, b, c, x1, delta;
    
    Scanner sc = new Scanner(System.in);
    System.out.println("Entrez Les Valeurs De a, b et c: ");
    a = sc.nextInt();
    b = sc.nextInt();
    c = sc.nextInt();
    
    delta = (b * b) - 4 * ( a * c );


    x1 = (-b + Math.sqrt( delta ) )/(2 * a);
    
    
    System.out.println("X1= " + x1);
                    
    
}

Это означает, что delta меньше нуля.

rgettman 14.12.2020 19:44
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
1
88
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Если дельта окажется отрицательной, sqrt вернется NaN

Другие вопросы по теме