B25
浮点数:小数怎么存、怎么除
引入
章前总览 第5章进入小数(浮点型)与字符(char)。本节先搞清:用 double/float 存小数;两个整数相除得到整数商,要小数结果至少一侧得是浮点数。
逻辑链条:
- C1:float / double 与小数常量
- C2:科学记数法 3.14e4
- C3:整数除法 vs 浮点数除法
1 C1. 浮点型变量与常量
小数在 C++ 里叫浮点数。float 单精度(约 6~7 位小数),double 双精度(约 15~16 位)。一级题目多用 double。
写法
double d = 2.5, pi = 3.1415926;
// d、pi 是浮点变量;2.5、3.1415926 是浮点常量
- 定义浮点变量要用关键字
double或float。 - 一级做题优先
double,精度更稳。
2 C2. 科学记数法
很大或很小的小数可以写成 数字E指数(E 大小写均可),表示 ×10 的几次方。
例子
3.1415926E4= 3.1415926 × 10⁴ = 31415.9261e5= 100000;2.5E3= 2500
3 C3. 整数除法与浮点数除法
两个整数相除 → 整数商(丢掉小数)。要得到带小数的商,被除数、除数至少有一个是浮点数。
补充说明
不推荐
cout << 17 / 5; // 输出 3,不是 3.4
问题:整数除法不会自动变成小数。
推荐写法
cout << 17.0 / 5; // 3.4
cout << 17 / 5.0; // 3.4
cout << 17.0 / 5.0; // 3.4
优点:圆周长、折扣金额都能保留小数。
整型变量怎么得到小数商
- 若
a、b都是 int,写a/b仍是整数商。 - 正确写法:
1.0*a/b,或强制转换(后文 B29)。 - 例:求半径不要写
d/2(d 为 int),要写d/2.0。
小结
记住三条:
用 double 存小数
17/5 → 3(整数商)
17.0/5 → 3.4(浮点商)
1.0*a/b 让整型变量也能得到小数商
✓
里程碑达成:
下一节学习字符型:char、ASCII、单引号与双引号的区别。