为什么输出cout << setprecision(2)<< 0.999是1而不是1.0?

Jes*_*n56 2 c++ significant-digits

有效数字是2.

为什么输出

cout << setprecision(2) << 0.999 << endl;` 
Run Code Online (Sandbox Code Playgroud)

1不是1.0

den*_*nis 5

默认格式不会打印尾随零; 您需要将浮点格式设置为fixed,另请参阅此引用.所以你需要的是

cout << setprecision(2) << fixed << 0.999 << endl;
Run Code Online (Sandbox Code Playgroud)

另请注意,setprecision指的是十进制数字,因此对于1.0,您需要 setprecision(1)