为什么编码是显示小数保留三位,而结果确实两位?

#include
#include
using namespace std;
int main()
{
double a = 123.45665 , b = 3.1456 , c = -3214.67 ;
cout << setiosflags(ios::fixed) << setprecision(3) ;
cout << setw(10) << a << '\n'
<< setw(10) << b << '\n'
<< setw(10) << c << '\n' ;
return 0;
}

                       123.46
                         3.14
                      -3214.67

https://ask.csdn.net/questions/839538 一样的问题,我测试正常
代码如下:

#include <iostream>
#include <iomanip>

using namespace std;
int main()
{
double a = 123.45665 , b = 3.1456 , c = -3214.67 ;
cout << setiosflags(ios::fixed) << setprecision(3) ;
cout << setw(10) << a << '\n'
<< setw(10) << b << '\n'
<< setw(10) << c << '\n' ;
return 0;
}