簡體   English   中英

二次方程式Java NaN?

[英]quadratic formula java NaN?

我必須要做二次方程式。 當我生成文件時,它沒有錯誤,但是當我運行項目時,輸出是Nan。 我知道那不是“數字”,但我不知道如何解決。

import java.io.*;
class cuadratica 
{
    public static void main(String [] args) throws IOException
    {
        cuadra obj=new cuadra();
        System.out.println("5.  Calcular la ecuación cuadrática (ax^2 + bx + c) ");
        obj.cal();
    }
 }

 class cuadra
 {
     void cal() throws IOException
     {
         String x;
         int a;
         String w;
         int b;
         String t;
         int c;
         int g;
         int f;
         double num3;
         double num2;
         double q;
         InputStreamReader isr = new InputStreamReader(System.in);
         BufferedReader br = new BufferedReader(isr);
         System.out.println("Inserte el primero numero (ax^2)" );
         x=br.readLine();
         a=Integer.parseInt(x);
         System.out.println("Inserte el segundo numero (bx)");
         w=br.readLine();
         b=Integer.parseInt(w);
         System.out.println("Inserte el tercer numero (c)");
         t=br.readLine();
         c=Integer.parseInt(t);
         g=(b*b)-(4*a*c);
         q=Math.sqrt(g);
         if (a!=0||g>0)
         {
             num2 = (-b+q)/(2*a);
             num3 = (-b-q)/(2*a);
             System.out.println("La raiz son "+num2+" y "+num3);
         }
         else 
         {
             System.out.println("error");
         }
     }
}

用實系數求解二次方程ax^2 + bx + c = 0時,方程的根將屬於以下類別之一:

  1. 兩個真正的根源
  2. 重復實根
  3. 兩個復雜的根源

我已經嘗試過您的程序,它為a = 1, b = 2, c = 1提供了正確的解決方案,但是對於a = 1, b = 1, c = 1提供a = 1, b = 1, c = 1 NaN 為了解決您的邏輯錯誤,您必須先b^2 - 4ac 判別式 b^2 - 4ac (代碼中的變量g為非負值,然后再求平方根(判別式為負數時,它對應於上面的情況3) 。 否則,當取負數的平方根時會得到NaN

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM