float类型的数a和0比较使用:

本文介绍了如何正确地比较float类型的数值与0之间的大小关系。由于浮点数计算中可能存在微小误差,直接使用==进行比较可能导致误判。文章提供了一个通过判断两个数之差的绝对值是否小于一个极小值来确定它们是否相等的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

float类型的数a和0比较使用:

  1. 先判断是否相等:fabs(a-0)<1e-5。

  2. 再判断a大于0:a>0

  3. 和判断a小于0:a<0

由于浮点数的计算误差,0可能出现0.00000001或者-0.00000001等无限接近于0,所以先把该数a和0作差后的绝对值与一个很小的数比较,如果小于这个很小的数,则说明a等于0,否则就可以直接用a>0和a<0判断a和0的关系。

例如:

#include "stdio.h"
#include<math.h> 
int main()
{
 	float i=0.01;
 	if(fabs(i-0)<1e-5)
 		printf("i等于0"); 
 	else if(i>0)
 		printf("i大于0");
 	else
	 	printf("i小于0"); 
  return 0;
}
/*
运行结果:
i大于0
*/

所以用float 类型 == 0 这种写法是错误的。 因为它永远也不会等于0。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值