书中的代码:
streamsize prec = cout.precision();
cout << "Your final grade is " << setprecision(3)
<< 0.2 * midterm + 0.4 * final + 0.4 * sum / count
<< setprecision(prec) << endl;
其中 streamsize包含在ios头文件中 ,iomanip则包含了setprecision,此处setprecision用来说明输出中包含几位有效数字。
简化可写为:cout << setprecision(3)<< 0.2 * midterm + 0.4 * final + 0.4 * sum / count;即输出学生最后成绩并保留三位有效数字。
在之后的setprecision(prec) << endl;则是为了在输出保留三位有效数字后恢复原来的精度。
代码另一种写法:
streamsize prec = cout.precision(3);
cout << "Your final grade is " << 0.2 * midterm + 0.4 * final + 0.4 * sum / count<<endl;
cout.setprecision(prec);
//本题延伸出的分别保留小数点前后有效数字的方法有待补足