C语言 计算机随机产生10道四则运算题 case3中是除法 为什么有时候判定会说是错的

如2/5=?输入0.4wrong!6/10=?输入0.6wrong!其他加减乘都没事... 如2/5=?输入0.4 wrong! 6/10=? 输入0.6 wrong!其他加减乘都没事 展开
 我来答
1812573723
2016-10-24 · TA获得超过2355个赞
知道小有建树答主
回答量:943
采纳率:88%
帮助的人:877万
展开全部
因为计算机存储的浮点数不精确。比如6./10,计算机算出来没准是0.59999999或者0.60000001,计算机判断浮点数不能用相等,而应该用类似 abs(a-b)<1e-6(视实际情况决定精度范围)这样的方式来判断a跟b相等。
更多追问追答
追问
那我要怎么办改啊?刚学C语言,不懂
追答

if (c==(float)a/(float)b)
改成
if (abs(c-(float)a/(float)b)<1e-6)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式