VC基础问题

#include<iostream.h>
void main(){
const float PI=3.14;
float radius=4.15;
float circums;
circums=2*PI*radius;
cout......
这个程序其实很简单,但在编译时,通不过,要把变量float改为其它的就行,例如改为double或int.如果想用float的话,必须把后面的数字改为.0就行,哪位哪告诉我,大概是什么原因?还是我不会用啊.谢谢.
编译时,出现warning C4305: 'initializing' : truncation from 'const double' to 'const float',大概是什么意思啊?原因在哪?

2*PI*radius得到的是double, warning C4305: 'initializing' : truncation from 'const double' to 'const float'是警告你从double转为float会丢失精度, 可以不用管.

VC中error才是错误, warning是不是错, 所以出现warning已是通过编译了
温馨提示:答案为网友推荐,仅供参考
第1个回答  2007-04-03
float是浮点类型 自然要带小数点.double和int是整型
第2个回答  2007-04-03
在浮点数后面加上f
const float PI=3.14f;
float radius=4.15f;
第3个回答  2007-04-03
const float PI=(float)3.14;
这样就可以了,强制转换下
相似回答