浮点数是不能直接比较大小的。原因如下:
在C++(以及其他很多编程语言)中,浮点数是以IEEE 754标准进行表示的。这种表示方法会导致浮点数运算中出现舍入误差,使得两个看似相等的浮点数在计算机内部的表示可能会有细微的差异。因此,直接比较两个浮点数是否相等是不安全的,可能会得到错误的结果。
如需要对浮点数进行比大小,我们需要定义一个很小的正数(通常设置为10的-6次方),并判断两个浮点数之差的绝对值是否小于或等于这个很小的数来判断它们是否相等。
这是一种常见且推荐的判断浮点数相等的方法。
举个栗子:
#include<bits/stdc++.h>
const float eps=1e-6;
using namespace std;
int main(){
float a,b;
cin>>a>>b;
if(abs(a-b)<=eps) cout<<"相等";
else if(a<b-eps) cout<<"小于";
else cout<<"大于";
return 0;
}