C语言编程,运行结果为什么不执行之后的语句

C语言编程,运行结果里面明明有ab=0.00000的情况,为什么if(ab==0.00000)时条件满足,却不执行之后的语句?n的值始终等于0?... C语言编程,运行结果里面明明有ab=0.00000的情况,为什么if(ab ==0.00000)时条件满足,却不执行之后的语句?n的值始终等于0? 展开
 我来答
Yuqi_Tan

2019-02-02 · TA获得超过8.9万个赞
知道大有可为答主
回答量:9918
采纳率:93%
帮助的人:3460万
展开全部
float类型的变量在存储时是有误差的!所以,看似ab=0.00000,实际上存储可能是0.000003,当用if(ab==0.00000)判断时,造成变量ab(0.000003)与常量(0.00000)不完全相等。
如果不想出现这种误差,就不要使用float或double型变量,而使用int型变量。
如果必须使用float型变量,在比较相等时,就不要使用==符号,一般用if(abs(ab-0.00000)<1e-6)来判断认为相等。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式