这是一段代码,我无法弄清楚它有什么问题。
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 - 都是 double 。
似乎只能用“m”工作。奇怪的是,当我尝试以下操作时,if语句的值为相同的值:
if(m==((-a)/b) && k<c/b)
以下是获取整个问题的屏幕截图:
代码在用户输入所有值后开始。
谢谢,非常感谢任何帮助!
答案 0 :(得分:0)
如果要比较两个浮点,请使用类似下限的阈值:
double m = a/b;
if (abs(m - (a/b)) < 0.0001)
{
// execute code where m == a/b here
}
所以基本上比较float / double减去它们并确保结果小于某个阈值。