float a; int b = 3, c = 2;
a = b / c; // 整數相除 → 1
printf("%f\n", a); // 輸出 1.000000
若改為 b=2, c=3 → 2/3 = 0 → a = 0.0。
b / c 兩運算元皆為 int → **整數除法**,結果為 int (截斷小數)。0 或 1 再**隱式轉換**為 float 賦值給 a。
// 方法一:字面值加 .0
a = b / 3.0; // 3.0 是 double
a = b / 3.0f; // 3.0f 是 float
// 方法二:強制轉型
a = (float)b / c; // b 先轉 float,c 隱式提升
a = b / (float)c;
// 方法三:乘以 1.0
a = b * 1.0 / c;
char, short, _Bool → int。long double > double > float > unsigned long long > ... > int)。float f = 5/2; → f = 2.0 ❌float f = 5/2.0; → f = 2.5 ✅double d = 1/3 * 3.0; → 1/3=0 → d=0.0 ❌ (結合性左至右)double d = 1.0/3 * 3; → d=1.0 ✅