c++,第二段第一句,书中说数值超过指定宽度就全部显示,但是还有遵守流的精度设置,里面不就是矛盾吗

2025-12-18 05:06:28
推荐回答(2个)
回答1:

意思是占宽和精度不是一回事,精度要求位数大于宽度限制时按精度要求输出,只有精度要求的具体位数少于宽度时宽度才起作用。

下列代码的“精度”是指小数点后的位数


你比较两个代码的不同来理解“精度”和“宽度”的意义……

回答2:

不会矛盾。书中的话实际是想表达:当使用了流格式化width和setw函数时,其精度所占域宽也包含在内。意思就是说:

1)当使用了width或setw函数时,若数据的域宽本身就超出(含)了所设置的域宽则原样输出

cout.width(4);    // 设置域宽为4
cout<<10.12<

2)当使用了width或setw函数时,若数据的域宽未超出了所设置的域宽时则默认用空格代替左侧的域宽。

cout.width(6);     // 注意,我改成了6
cout<<10.12<