可能重複:
How should I do floating point comparison?如果聲明 - 不正確評估
這是一個代碼片段,我想不出有什麼地方錯了。
if語句正在錯誤地評估數字並轉到「else」。
double m,k;
m = (y3-y1)/(x3-x1);
k = m*(-x1)+y1;
cout <<"\n\n"<< m <<" "<< k << "\n";
cout <<"\n\n"<< ((-a)/b) <<" "<< c/b << "\n";
if(m==((-a)/b) && k==c/b)
{
cout << "\nTaisne sakrīt ar kādu no trīsstūra malām!" << endl;
goto beigas;
}
else
cout << "\n\n WRONG \n\n";
用戶輸入值X1,Y1,X3,Y3,A,B,C - 都是雙。
它似乎只適用於「m」。而令人奇怪的是,當我嘗試以下,if語句是真的有相同的價值觀:
if(m==((-a)/b) && k<c/b)
下面是截圖讓整個問題:
的代碼開始用戶輸入完所有的值後。
謝謝,任何幫助將不勝感激!
當您要比較兩個浮點
浮點運算不準確。 – chris
變量的值是什麼? – Yohannes
@ chris的擔心可以通過檢查c/b-k是否小於某個小值來解決。 – BostonJohn