本课定位:前面的程序里,数字全都装在
int这个“只能放整数”的盒子里。本课再开两种新盒子:double装小数,char装单个字符。重点落在两件事上——怎么让输出的小数保留指定的位数,以及字符和整数之间怎么来回换算。
两种新盒子
│
├── double:装小数 ──→ printf("%.2f", x) 控制保留几位小数
│
└── char:装一个字符 ──→ 字符的本质是整数(ASCII 码)
'A' = 65 'a' = 97 '0' = 48
│
└── 相互换算
'7' - '0' → 7
(char)(n + '0') → 数字字符
c - 'a' + 'A' → 小写转大写
学完本课,学员要能用自己的话说清楚这张图:小数用 double 装、用 printf 控制位数输出;字符用 char 装,它本质上是一个整数,所以能靠加减法在“字符”和“数字”之间来回换。
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
讲解要点:
double 的输出不需要特殊处理,cout 直接就能打印,上面的 7 就是 3.5 × 2 的结果;3.0 和 3 在类型上不一样,这一点马上就会用到。#include<iostream>
using namespace std;
int main() {
cout << 7 / 2 << endl; // 两个 int 相除
cout << 7.0 / 2 << endl; // 有一个是小数
return 0;
}
输出:
3
3.5
讲解要点: