簡體   English   中英

c的除法未給出期望值

[英]Division in c not giving expected value

我在做除法運算時會得到一個四舍五入的答案嗎?

double div;
div = 25/8;
printf("%lf",div);

當我這樣做時打印出3.0000

為什么我沒有得到3.125

由於您要進行整數除法,請嘗試:

div = 25.0/8;

要么

div = (double)25/8;

鍵入25.0表示雙重文字。 您也可以將25.f用作浮點文字。 這兩個都觸發浮點除法。

顯式地將類型轉換為雙倍數據類型,或者更改分子以獲取所需的值,即25.o或使用浮點文字25.f。

進行類型轉換,即將其更改為:

double div;
div = (double)25/(double)8;
printf("%lf",div);

由於分子和分母都是整數值,除法運算符僅執行整數除法並跳過小數部分以達到優化目的。

因此,您需要通過類型轉換來指定或將25作為25.0或8作為8.0來指定小數部分。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM