#include <iostream> using namespace std;
int main()
{
double x=5.0,y=4.0,z;
z=x+y;
cout<<x<<endl<<y<<endl<<z;
return 0;
}
上面的程序给出了以下输出: 五 4 9 当我声明变量为double,甚至z为double时,为什么我将输出作为整数值(9)??
答案 0 :(得分:1)
cout
在这里很有帮助:如果double
值是一个整数,那么默认情况下,它不会显示小数分隔符,后跟任意数量的零。
如果您希望显示与您平台上特定double
的精度相同的数字,那么请使用
cout.precision(std::numeric_limits<double>::max_digits10);
cout << fixed << x << endl;
答案 1 :(得分:0)
浮点后没有数字的浮点数默认打印为整数。
要始终显示浮点数,请使用setiosflags(ios::showpoint)
。
您可以将其与fixed
和setprecision(n)
I / O标志组合,以限制浮点后打印的位数。例如:
double d = 5.0;
cout << setiosflags(ios::showpoint) << d << endl; // prints 5.00000
cout << setiosflags(ios::showpoint) << fixed << setprecision(1)
<< d << endl; // prints 5.0