如何在c ++中编写带小数点的浮点值

时间:2017-01-25 08:30:38

标签: c++

我想知道如何在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;
}

1 个答案:

答案 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