warning C4244: '=' : conversion from 'double' to 'float', possible loss of data,什么意思啊?

我经常出这样的错误啊,如何判断float和double啊,求高手详细点啊#include<stdio.h>#include<math.h>intmain(){floata... 我经常出这样的错误啊,如何判断float和double啊,求高手详细点啊
#include<stdio.h>
#include<math.h>
int main()
{
float a,b,c,disc;
scanf("%f%f%f",&a,&b,&c);
disc=pow(b,2)-4*a*c;
printf("disc=%f",disc);
if(disc>0)
printf("有两个不相同的实根 ");
else if(disc=0)
printf("有两个相同实根 ");
return 0;
}
展开
 我来答
创作者GQOqVy43Mb
2011-10-22
知道答主
回答量:9
采纳率:0%
帮助的人:1.5万
展开全部
你的程序代码有错误else if(disc=0)
应该是else if(disc==0)
warning C4244: '=' : conversion from 'double' to 'float', possible loss of data
这句话的意思是 注意 ‘=’ 你的一个变量从double转换成float型,可能会失去一部分数据,数据的精确度发生变化;float型表示的数据精确度小,一般解决办法就是强制类型转换,这个‘注意’,是系统的自动转换,强制转换语法规则(double)n;n表示的是一个其他类型的变量,括号里的表示要转换成的数据类型;
Sumerhotzzy
2011-10-23 · TA获得超过146个赞
知道小有建树答主
回答量:190
采纳率:0%
帮助的人:209万
展开全部
顶楼上的回答。
同时补充一点,浮点型数据最好不要用==0或者>0这样的判断,容易受到残余尾数的困扰
==0可以用ABS(disc)<0.0000001//这个小数根据你需要的精度来写,0越多表示精度越高
>0什么的可以用disc>0.0000001
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式