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

Estou com dúvida no curso de C# e seus Fundamentos, no exercício do capítulo Variáveis e Tipos Primitivos.

Meu retorno esta sendo NaN não é numero.

Segue meu código.

using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms;

namespace WindowsFormsApplication5 { public partial class Form1 : Form { public Form1() { InitializeComponent(); }

private void button1_Click(object sender, EventArgs e) { int a = 1; int b = 3; int c = 10;

double delta, a1, a2;

delta = b b - 4 a * c;

a1 = (-b + Math.Sqrt(delta)) / (2 a); a2 = (-b - Math.Sqrt(delta)) / (2 a); MessageBox.Show(Convert.ToString(a1) + Convert.ToString(a2));

} } }

2 respostas

Troque os seus ints para

int a = 2; int b = -6; int c = -20;

solução!

Como o Gabriel disse, alterando os valores seu cálculo dará certo, porém gostaria de incrementar algumas sugestões.

O erro no seu caso se dá pela raiz quadrada de delta. Na matemática clássica não existe raiz quadrada negativa, por isso o retorno NaN. O retorno NaN representa um valor que não é um número, no seu caso por exemplo. Há algumas opções. Você pode verificar antes o retorno (IF) para possiveis valores "NaN" ou utilizar o cálculo da matemática moderna (pseudo) para raiz negativa. Para auxiliá-lo segue: http://www.mundoeducacao.com/matematica/raiz-quadrada-um-numero-negativo.htm

http://msdn.microsoft.com/pt-br/library/system.double.nan(v=vs.110).aspx

Espero ter ajudado!