1
我寫了一個計算二次方程的小應用程序。它可以工作,我可以計算(幾乎)所有沒有非真實判別式的方程,但是當我將A的值更改爲anythinh而非1時,程序給了我奇怪的答案。這是計算代碼:目標C中的二次方程計算
- (double)calculateRoot1{
return (-B + sqrt((B*B)-4*A*C))/2*A;
}
- (double)calculateRoot2{
return (-B - sqrt((B*B)-4*A*C))/2*A;
}
然而這似乎適用於A = 1的任何方程式。我希望你們能幫助我!
謝謝:)
你的分母應該是'/(2 * A)' – thelaws 2014-10-01 16:33:56
或'/ 2/A'。另外,使用'2.0'而不是'2'。 – rmaddy 2014-10-01 16:48:18
@rmaddy我從來沒有完全清楚現代(llvm)圍繞字面轉換的規則。因爲lhs'(-B + sqrt((B * B)-4 * A * C))'可能是雙倍的,所以不會變成雙重的? – 2014-10-01 17:37:54