我正在研究一個程序,並且使用二次公式。這是當一個按鈕被點擊,解決問題執行的代碼,二次方程式返回一個錯誤
private void button1_Click(object sender, EventArgs e)
{
double aVal, bVal, cVal, xVal1, xVal2;
xVal1 = 0;
xVal2 = 0;
aVal = Convert.ToDouble(a.Text);
bVal = Convert.ToDouble(b.Text);
cVal = Convert.ToDouble(c.Text);
xVal1 = (bVal + Math.Sqrt(Math.Pow(bVal, 2) - (4 * aVal * cVal)))/2 * aVal; //Positive Calculation
xVal2 = (bVal - Math.Sqrt(Math.Pow(bVal, 2) - (4 * aVal * cVal)))/2 * aVal; //Negative Calculation
xPos.Text = Convert.ToString(xVal1);
xNeg.Text = Convert.ToString(xVal2);
}
一些調試後,我相信我已經縮小的問題降到9號線和10,其中實際的數學發生。不過,我不太確定有什麼問題。正如你所看到的,這些數字是雙打的,並且被初始化了,所以它們不是空的,或者是截斷的。當我運行程序並輸入一個b,c和6,4和3的值時,負責輸出負值和正值的xPos和xNeg標籤只顯示NaN。我應該使用這種標籤嗎?
你檢查,以確保該Convert.ToDouble發揮預期?您是否嘗試過使用Double.Parse或Double.TryParse? – Dweeberly
你試圖效仿的確切公式是什麼? – tinstaafl
看起來有人應該嘗試理解二次公式。你給的例子,比如6x^2 + 4x + 3沒有真正的根。你還期望什麼,但NaN? – Alec