[英]Explanation about Output in C
所以我在 C 中有以下代碼片段:
int a = 25, b = 100, c;
if (b++ <= (a * 4))
c = 3;
else
c = 20;
printf ("%f\n", (float) (b / c));
當我運行代碼時, output 返回值33.0000 。 我期待 output 是33.6667 。 我想知道為什么會這樣? 我的計算如下:
謝謝您的幫助!!
表達式b / c
正在執行 integer 除法,因為兩個操作數都是整數。 這意味着結果值被截斷。
如果要執行浮點除法,請將操作數之一轉換為float
。
printf ("%f\n", (float)b / c);
您已在代碼中將 b 和 c a 聲明為 int ,然后您在其中執行了除法運算,這意味着您正在對整數執行除法,並將結果轉換為浮點數。 如果您需要除法來給出精確的浮點值,請將變量聲明為浮點數,
int a = 25;
float b = 100.0, c;
if (b++ <= (a * 4))
c = 3.0;
else
c = 20.0;
printf ("%f\n", (b / c));
b/c 的 integer 除法在轉換之前完成,因此您將 output 設為 33.000。嘗試將變量 b 轉換為浮點數,然后執行除法運算
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.