int a = 5, b = 2;
float result = a / b; // 整數除法結果為 2,再隱式轉 float → 2.0000
printf("%.4f", result);
整數除法截斷小數部分:C語言中int / int結果仍為int,小數部分直接丟棄,賦值給float時已是整數值。
float result = (float)a / b;float result = a / 2.0f;(2.0f為float,觸發浮點運算)float a = 5, b = 2;float x = 0.1f + 0.2f;
if (x == 0.3f) // 可能為 false!二進制無法精確表示0.1
// 正確比較:
if (fabs(x - 0.3f) < 1e-6)
printf("a=%d, b=%d, a/b=%d\n", a, b, a/b);gcc -Wall -Wextra -Wconversion會提示隱式精度丟失。decimal庫或定點數(以分為單位存整數)。