Dúvida (erro "NaN" no código Java)

Boa tarde, pessoal! Eu estou resolvendo um exercício utilizando a linguagem Java, e estou com uma dúvida. A lógica que criei parece funcional, mas quando vou executar ele, aparece a palavra “NaN” ao invés de aparecer valores e números. Quem souber a respeito do problema, me ajuda por favor? Muito obrigado pela ajuda! Segue o exercício e a lógica que utilizei.

*Detalhe: Eu não utilizei no código o uso da condicional “se” pelo fato de o exercício ser simples mesmo e no primeiro momento, o professor não pedi-lo como meio de verificação.

Exercício)_ Receba os coeficientes A, B e C de uma equação do 2º grau (AX² + BX + C = 0). Calcule e mostre as raízes reais (considerar que a equação possuí 2 raízes).

Lógica:

package algoritmos_Satoshi;

import javax.swing.JOptionPane;

public class Ex_05 {
public static void main(String[] args) {
double A = 0, B = 0, C = 0, delta = 0, x1 = 0, x2 = 0;

	A = Double.parseDouble(JOptionPane.showInputDialog("Insira o valor do coeficiente A, sendo maior que zero: "));

	B = Double.parseDouble(JOptionPane.showInputDialog("Insira o valor do coeficiente B: "));

	C = Double.parseDouble(JOptionPane.showInputDialog("Insira o valor do coeficiente C: "));

	delta = (B * B) - (4 * A * C);

	x1 = (-B + Math.pow(delta, 0.5)) / 2 * A;

	x2 = (-B - Math.pow(delta, 0.5)) / 2 * A;

	JOptionPane.showMessageDialog(null, "Os valores das raízes reais são, respectivamente: " + "\n\n" + "X' = " + x1
			+ ";" + "\n" + "X'' = " + x2 + ".");
}

}

NaN pode significar que vc fez a divisão por zero.

Imprima os coeficientes lidos e veja se A faz sentido

1 curtida

Por acaso é a bhaskara que quer resolver?
NaN -> Not a Number, costuma ocorrer quando vc tenta realizar uma operação inválida na matemática, como raiz quadrada de algum valor negativo.
A proposito, em que parte vc está fazendo a raiz, se é a equação da bhaskara?
Inclusive vc tem várias inconsistências na equação, como (-B + Math.pow(delta, 0.5)) / 2 * A
onde primeiro será dividido por 2 e depois multiplicado por A.
É ESSENCIAL SE LIGAR NA PRECEDÊNCIA DAS OPERAÇÕES

1 curtida

Boa, irmão. Nem reparei isso. Vou arrumar agora.

boa!

eu tinha pensando na divisão por zero, mas em geral isso gera uma exception.

java não tem suporte padrão para numeros complexos. logo a raiz de um numero negativo não esta definida no conjunto dos numeros reais e rola um NaN.