输入输出的应用¶
有格式的输入¶
有格式的输出¶
printf 保留小数位数¶
题目要求保留两位小数,就用 %.2lf。
.2 表示小数点后两位,换成 .3 就是三位。
别漏掉小数点,%2lf 不是保留两位小数。
下面三行 printf 分别运行,观察各自的输出。
double x = 2.6;
printf("%.0lf", x); // 输出3
printf("%.2lf", x); // 输出2.60
printf("%.3lf", x); // 输出2.600
不足的位数会补 0,多出的位数会舍入,不是直接截去。
输出格式不会改变变量的值。
浮点数有精度限制,末位舍入有时与手算不同,这里先不展开。
输出多个小数,也是一一对应:
注意:保留小数位数,只管怎么显示,不会把整数除法变成小数除法。
不能写成 printf("%.2lf", a / b),整数除法已经丢了小数,结果类型也与 %lf 不匹配。
cout 保留小数位数¶
除了 <iostream>,还需要头文件 <iomanip>。
fixed 配合 setprecision(2),表示小数点后两位。
默认输出格式下,只写 setprecision(2),表示两位有效数字,别混了。
这个设置会影响后续的浮点输出,不用每次都写。