开始时间: 2025-08-13, 22:00:00
HZQSN_CPP语法能力二级(练习)
结束时间: 2028-08-14, 02:00:00
已耗时:
剩余时间:

L208_小数点后保留两位的设置

时间限制:  1 s      内存限制:   128 MB
提交:37     正确:34     分值:100

题目描述

编写一个程序,输入任意一个数(整数或浮点数),输出保留小数点后两位的结果(四舍五入)。


学习材料

以下程序实现了浮点数的输出,保留小数点后两位格式形式。

#include <iostream>

#include <iomanip>//格式化输出头文件

using namespace std;

int main()

{

      double a = 3.689562;

      cout <<  fixed << setprecision(2)  <<   a  <<  endl; //在输出前设备输出格式

      ……

}


关键点解析

  1. 头文件

    • <iomanip>:提供 fixed 和 setprecision 等格式化控制符。

  2. 为什么不用 printf

    • cout 的格式化更符合C++风格,且类型安全(无需 %f%d 等占位符)。


  3. 格式化输出

    • fixed:强制以小数形式输出(避免科学计数法)。

    • setprecision(2):保留两位小数(自动四舍五入)。

    • setprecision 和 fixed 的顺序重要吗?

      • 重要! 必须先用 fixed 锁定小数模式,再设置精度

    • 核心语法fixed + setprecision(2) 是保留两位小数的黄金组合。

  4. 数据类型选择

    • 优先使用 double,避免 float 的精度损失

      • 更广的数值范围(±1e308)。

      • 更高的精度(15~16位有效数字)。

  5. 特殊输入处理

    • 整数输入(如 5)会自动补全为 5.00

    • 负数(如 -2.3)保留符号并补零为 -2.30


补充材料阅读(优化版)

<iomanip> 头文件详解

#include <iomanip> 是 C++ 标准库中用于输入输出格式化的头文件。


核心功能说明

1. 浮点数精度控制
控制符 作用 示例 注意事项
setprecision(n) 设置有效数字位数(默认6位) setprecision(4) → 3.142 对整数无效
fixed 固定小数位数显示 fixed << setprecision(2) → 3.14 需与 setprecision 联用
scientific 科学计数法显示 scientific << 314.15 → 3.141500e+02 默认小写 e

关键区别

2. 数值进制控制
控制符 作用 示例输入(int a=255) 示例输出
dec 十进制 cout << dec << a; 255
hex 十六进制 cout << hex << a; ff
oct 八进制 cout << oct << a; 377
setbase(n) 动态设置进制(n=8,10,16) cout << setbase(16) << a; ff
3. 输出对齐与填充
控制符 作用 示例(int a=42) 输出效果
setw(n) 设置字段宽度 cout << setw(5) << a; 42
setfill(c) 设置填充字符 cout << setfill('*') << setw(5) << a; ***42
left 左对齐 cout << left << setw(5) << a; 42
right 右对齐(默认) cout << right << setw(5) << a; 42

注意setw(n) 仅对下一个输出项生效,需重复设置。

4. 其他常用控制符
控制符 作用 示例 输出效果
uppercase 科学计数法/十六进制大写 cout << uppercase << scientific << 314.15; 3.141500E+02
showpos 显示正数的 + 号 cout << showpos << 42; +42
showpoint 强制显示小数点 cout << showpoint << 42.0; 42.0000
resetiosflags 清除格式设置 resetiosflags(ios::fixed) 恢复默认



输入

输入一个数 num(范围:-1e6 ≤ num ≤ 1e6)。

输出

输出一个浮点数,保留两位小数。



样例

样例输入:
5
样例输出:
5.00
样例输入:
10.987
样例输出:
10.99
样例输入:
-2.3
样例输出:
-2.30

提交人

AmberXie