hackbs 发表于 2012-9-7 21:13:33

编译问题

代码
#include <stdio.h>
void main()
{
   float a,b,c;
a=3.1;
b=4.2;
c=a*a+b*b;         /* 27.25 */
printf("%f*%f+%f*%f=%6.2f\n",a,a,b,b,c);/*3.1 x 3.1 + 4.2 x 4.2 =   27.25*/
}


--------------------Configuration: tet2 - Win32 Debug--------------------
Compiling...
tet2.c
d:\资源\c语言类\c语言入门与提高\作业\第3章\test2\tet2.c(6) : warning C4305: '=' : truncation from 'const double ' to 'float '
d:\资源\c语言类\c语言入门与提高\作业\第3章\test2\tet2.c(7) : warning C4305: '=' : truncation from 'const double ' to 'float '
tet2.obj - 0 error(s), 0 warning(s)


楚门 发表于 2012-9-8 01:14:47

没什么错误啊,仅仅是两个警告,因为c语言中浮点常数默认为双精度的,而你的a,b变量是单精度的,将双精度浮点数赋值给单精度浮点数,编译器提示你可能损失精度,没什么问题的!!{:5_109:}

hackbs 发表于 2012-9-8 07:20:48

楚门 发表于 2012-9-8 01:14 static/image/common/back.gif
没什么错误啊,仅仅是两个警告,因为c语言中浮点常数默认为双精度的,而你的a,b变量是单精度的,将双精度浮 ...

{:5_109:}恩恩。CC你、
页: [1]
查看完整版本: 编译问题