9.9 浮點數轉型為整數的規則
浮點數轉成整數型態時,規則只有一條:小數部分直接捨去(正式說法:向零取整,truncation toward zero)。
#include <iostream>
using namespace std;
int main() {
cout << (int)3.8 << '\n'; // 3:小數直接丟
cout << (int)-2.9 << '\n'; // -2:負數也是「往 0 的方向」丟
return 0;
}
執行結果:
3
-2
似曾相識?上冊 2.6 的整數除法丟小數的方向就是向零取整(上冊圖 2-2 的數線)——同一條規則在轉型這裡再次登場。
把四個「變成整數」的操作放在一起對照,一次分清楚:
| x | (int)x(向零) |
floor(x)(向下) |
ceil(x)(向上) |
round(x)(四捨五入) |
|---|---|---|---|---|
| 3.8 | 3 | 3 | 4 | 4 |
| 3.2 | 3 | 3 | 4 | 3 |
| -2.9 | -2 | -3 | -2 | -3 |
| -2.2 | -2 | -3 | -2 | -2 |
正數時 (int) 和 floor 一樣,負數時分家——負數題目要多看一眼。