[英]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.