Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

NaN, por que aparece?

É normal aparecer NaN (Not a Number)? Seria pelos valores declarados de A, B e C ou erro do código? Até porque se eu colocar C = 2 aparece os resultados. Teria alguma outra forma de se fazer e declarar qualquer número e nunca aparecer o NaN? Ou seria uma limitação da formula matemática mesmo?

        private void button1_Click(object sender, EventArgs e)
        {
            int a = 2;
            int b = 5;
            int c = 4;

            double delta = b * b - 4 * a * c; ;
            double a1 = (-b + Math.Sqrt(delta)) / (2 * a);

            double a2 = (-b - Math.Sqrt(delta)) / (2 * a);




            MessageBox.Show("Resultado 1: " + a1);
            MessageBox.Show("Resultado 2: " + a2);
        }
    }
2 respostas
solução!

Olá Jocy,

o problema está justamente nos valores das variáveis a, b e c. Como a fórmula do delta é b * b - 4 * a * c, para a igual a 2, b igual a 5 e c igual a 4, o resultado de delta dá -7. No entanto, para os números reais não existe rais quadrada de um número negativo quando fazemos o Math.Sqrt(delta). Por isso que ele está dando NaN justamente quando tenta fazer raiz quadrada de -7.

complementando o dito acima, você pode verificar comparando o seu campo com Double.Nan ou Single.Nan