語法書 / AA 競程語法書 下冊 / 第九單元 / 浮點數轉型為整數的規則

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 一樣,負數時分家——負數題目要多看一眼。