int类型
if(a==b)
{
}
float 或者double的话
对浮点数比较大小时不要使用==
本来应该相等的两个浮点数由于计算机内部表示的原因可能略有微小的误差,这时用==就会认为它们不等。应该使用两个浮点数之间的差异的绝对值小于某个可以接受的值来判断判断它们是否相等,比如用
char ch;
scanf("%c",&ch);
switch(ch)
{
case 'A':
break;
case 'B':
break;
default:
};
由于浮点数伴随着无法精确表示而进行近似或舍入,处理器是32位还是64位都会导致浮点数值不一样,所以浮点数不能够使用 == 来判断两个浮点数是否相等。浮点数比较应该通过fabs方法算出两个浮点数间的绝对值,再判断是否在设定的精确度范围内,如果在,则表示相等,否则不相等。
如:
if(fabs(a-b)< 精确度){
}
精确度可以自己设定,设:00001;也可以使用oc中的宏(FLT_EPSILON)
备注:
1、FLT_EPSILON用于float类型。它是满足 x+10不等于10的最小的正数。
2、DBL_EPSILON用于double类型。
3、abs 方法用于整型间的绝对值。大小直接比较,
相等比较他们的差值在一定的误差范围内就认为是相等了。
比如:double
d1,d2;
const
double
d
=
00001;
if(d1
-
d2
>
-d
&&
d1
-
d2
<
d);
认为d1与d2相等,否则不相等
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)