int main(){
float f = 10.12345;
cout.width(10);
cout.fill('*');
cout<< f << endl;
cout<< f << endl;
}
第一个cout语句输出
我预计产量为** 10.12345,但它是*** 10.1235
第二个cout语句输出
我预计产量是10.12345,但它是10.1235
有人可以解释这种行为吗?
答案 0 :(得分:0)
由于默认精度值(6),您的浮点值将四舍五入到4位小数,请参考Activity
因此ios_base::precision
最终为10.12345
此外,第一个输出的宽度为10,值10.1235
中有7个字符,剩下3个用10.1235
填充,因此输出*
最后,由于默认精度,最后一个答案是舍入的答案:***10.1235