我想知道如何在c ++中编写带小数点的浮点值。在这里,我想打印小数点值。这是程序:这个程序给出带有浮动数字的输出,但是在回答时,它打印的第一个值是1,我想要1.000000.所有其他值都带有6个小数点。只有第一个值存在问题。虽然我使用cout.precision,但它仍然不会给我正确的输出。我也不想为此使用setw()。提前谢谢。
#include<iostream.h>
#include<iomanip.h>
#include<math.h>
#include<conio.h>
int main()
{
float x,y;
clrscr();
cout<<" TABLE FOR Y=EXP(-X) :\n\n";
cout<<"x";
for(float k=0;k<0.9;k=k+0.1)
cout<<"\t "<<k;
cout<<"\n";
cout<<"---------------------------------------------------------------------";
cout<<"\n";
for(float j=0;j<10;j++)
{
cout<<j;
for(float i=0;i<.8;i=i+0.1)
{
x=i+j;
y=exp(-x);
cout.precision(6);
cout.setf(ios::fixed);
cout<<" "<<y;
}
cout<<"\n";
}
return 0;
}
答案 0 :(得分:3)
[编辑]
在您的代码中,您在使用cout.precision(6);
之前第一次打印j,也无法每次都设置精度,请尝试:
cout.precision(6);
cout.setf(ios::fixed);
for(float j=0;j<10;j++)
{
cout<<j;
for(float i=0;i<0.8;i=i+0.1)
{
x=i+j;
y=exp(-x);
cout<<" "<<y;
}
cout<<"\n";
}
[老]
您可以在cout中将变量转换为float:
void main()
{
int a = 1;
std::cout.precision(2);
std::cout << std::fixed << static_cast<float>(a) << std::endl;
}
结果将是:1.00