第 03 课:顺序结构进阶——double 与 char

本课定位:前面的程序里,数字全都装在 int 这个“只能放整数”的盒子里。本课再开两种新盒子:double 装小数,char 装单个字符。重点落在两件事上——怎么让输出的小数保留指定的位数,以及字符和整数之间怎么来回换算。

0. 本节知识地图

两种新盒子
   │
   ├── double:装小数 ──→ printf("%.2f", x)  控制保留几位小数
   │
   └── char:装一个字符 ──→ 字符的本质是整数(ASCII 码)
                            'A' = 65   'a' = 97   '0' = 48
                                  │
                                  └── 相互换算
                                      '7' - '0'  →  7
                                      (char)(n + '0')  →  数字字符
                                      c - 'a' + 'A'    →  小写转大写

学完本课,学员要能用自己的话说清楚这张图:小数用 double 装、用 printf 控制位数输出;字符用 char 装,它本质上是一个整数,所以能靠加减法在“字符”和“数字”之间来回换。

1 double:能装小数的盒子

int 只能装整数,带小数点的数要装进 double(可以理解成“双精度实数”):

#include<iostream>
using namespace std;

int main() {
    double x;
    cin >> x;
    cout << x << endl;          // 原样输出读进来的小数
    cout << x * 2 << endl;      // 小数也能做四则运算
    return 0;
}

输入:

3.5

输出:

3.5
7

讲解要点:

关键对比:整数除法和小数除法

#include<iostream>
using namespace std;

int main() {
    cout << 7 / 2 << endl;      // 两个 int 相除
    cout << 7.0 / 2 << endl;    // 有一个是小数
    return 0;
}

输出:

3
3.5

讲解要点: