饭店黑板菜单设计图片:这句话是什么意思? warning C4305: '=' : truncation from 'const double' to 'float'

来源:百度文库 编辑:杭州交通信息网 时间:2024/04/28 14:20:22
例题是这样的,我用的VC++6.0,运行时就出现在条警告!float 是单精度浮点型 double是双精度浮点型.这些我知道,但是这题明明定义的float,关double叼事..实在不明白?
#include<iostream>
using namespace std;
int main()
{float x;int i;
x=3.6;i=(int)x;
cout<<"x="<<x<<",i="<<i<<endl;
return 0;}
谢谢!!!原来是许多编译器都默认以double.
可是那个警告可麻烦了啊,有没有好的方法不让它出现呀!
比如说在一个大程序里..要是警告一个接一个..唉..那可糟糕了啊!!!

楼2的是对的.C语言中的确有此介绍.除了x=3.6f外还可x=3.6F都是正确的.证明详见谭浩强<<C语言程序第二版>>47页.郁闷的是,C++书中却从未提过这种方法,但是却可以运行!!

在 C 语言中,如果不指定数据类型,那么小数常量会被认为是 double 类型的。
因此在你的初始化中

x = 3.6;

这一句,x 是 float 类型的,但是 3.6 是 double 类型的,由于它是常量,所以编译器称为 const double。double 是不能隐式转换为 float 的。

另外,请文明提问。

x=3.6f;

试试,
问题不错,言简意赅。我也在等高人回复。

在 C 语言中,如果不指定数据类型,那么小数常量会被认为是 double 类型的

x=3.6f;这样就好了