关于警告conversion from 'double ' to 'float '

carryingyou 2007-06-08 08:52:41
#include <stdio.h>
#include <math.h>

void main()
{
float a,b,c,s,area;
scanf("%f,%f,%f",&a,&b,&c);
1-> s = 1.0/2*(a+b+c);
2-> 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);
}

编译器显示在1,2处出现警告:warning C4244: '=' : conversion from 'double ' to 'float ', possible loss of data

请问我并没有定义double型变量,为什么会出现这种错误呢?我先搜索过了,好像没有找到有人提过。
...全文
3099 3 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
freshui 2007-06-08
  • 打赏
  • 举报
回复
1.0 默认是double的
不用管
koffighter 2007-06-08
  • 打赏
  • 举报
回复 2
硬编码的浮点数默认为double,在数字后加f为float类型,如1.0f
FingerStyle 2007-06-08
  • 打赏
  • 举报
回复
1.0/2*(a+b+c)
sqrt(s*(s-a)*(s-b)*(s-c));
的结果是double的

70,020

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧