C语言中double类型的两个数怎么判断相等?

来源:百度知道 编辑:UC知道 时间:2024/06/05 05:50:59
这个程序中,标记处怎么改能实现要求呢?

#include<stdio.h>
#include <stdlib.h>
#include <iostream.h>

void main()
{
double num1,num2,result;
cin>>num1>>num2;
if( 0 != num2 )
{
cout<<num1<<" / "<<num2<<" = ";
cin>>result;
if (result = num1 / num2) //@@@@@@@这里怎么改?
{
cout<<"You are right!"<<endl;
}
}
}

result == num1 / num2 首先要改成双等号,单等号是赋值的意思
其次,浮点数在计算机中并不能精确的表示,因此,在判断浮点相等
时可以根据自己的需要设定一个误差范围,比如,认为相差在0.0001
以内就是相等。

#include <math.h> //fabs需要的头文件
if (fabs(result - num1 / num2)<0.0001)