warning C4244: 'argument' : conversion from 'double' to 'float', possible loss of data怎么解决
#include<stdio.h>#include<math.h>main(){floata,b,c,s,area;scanf("%f,%f,%f",&a,&b,&c);...
#include<stdio.h>
#include<math.h>
main()
{ float a,b,c,s,area;
scanf("%f,%f,%f",&a,&b,&c);
s=1.0/2*(a+b+c);
area=sqrt(s*(s-a)*(s-b)*(s-c));
printf("a=%7.2f,b=%7.2f,c=%7.2f,s=%7.2f\n",a,b,c,s);
printf("area=%7.2f\n",area);} 展开
#include<math.h>
main()
{ float a,b,c,s,area;
scanf("%f,%f,%f",&a,&b,&c);
s=1.0/2*(a+b+c);
area=sqrt(s*(s-a)*(s-b)*(s-c));
printf("a=%7.2f,b=%7.2f,c=%7.2f,s=%7.2f\n",a,b,c,s);
printf("area=%7.2f\n",area);} 展开
展开全部
楼上说得对,强制转换一下就可以。之所以会有这个警告是因为小数型常量在C中默认的数据类型是double,而你的变量都是float型的,double的精度比float高,因此在做浮点运算的时候(包括后面sqrt出来的也是double)就出了这个警告。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询