C++程序中为什么用cout输出float或double型的数据,屏幕上不是小数而是整数呢?

#include <iostream.h>
void main()
{
int i=2;
float j=3.14;
float a,b;
a=float(i);
b=(int)j;
cout<<"float型转换为int型:i="<<i<<",a="<<a<<endl;
cout<<"int型转换为float型:j="<<j<<",b="<<b<<endl;
}

#include <iostream.h>
void print(double d)
{
cout<<"This is a double "<<d<<"\n";
}
void print(int i)
{
cout<<"This is an integer "<<i<<"\n";
}
void main()
{
int x=1,z=10;
float y=1.0;
char c='a';
print(x);
print(y);
print(c);
print(double(z));
}

这两个程序输出的结果都是整数,但是在C里面float类型的数据明明可以输出小数的?求解??

cout跟printf是不同的,cout输出float或double,是会将小数点后非有效数字的0去掉的,而printf里面以%f输出规定是以6位小数输出,不管是不是有效数字
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-11-24
楼主,ANSI C++里一个浮点型若是小数部分为0,直接输出必然是不带小数点的。
现在,例如
float a=3;
你若想输出3.0,输出代码要这样写:
cout << showpoint << a;本回答被提问者采纳
相似回答