關於c語言中如何四捨五入(圓整)的問題!
在c語言中,用70.0/6得到的值賦給乙個浮點變數,只會得到11.666667(因為浮點型只留下小數點後六位),而如果我們想輸出結果的約數,必須要對結果進行四捨五入.
一般來說,在c語言中,如果想要對乙個結果進行四捨五入,我們通常會先將需要圓整的位數進行整數化,
即乘以相應的倍數,然後再用其對10對模,然後對結果與5的大小進行判斷,判斷是否需要加上相應的
1,0.1,0.01等等
下面給出對實型數進行整數圓整的**,比如2.7->3,2.3->2
/*將乙個浮點數圓整為整數*/
double a;
//a為乙個浮點數
int temp;
//作為乙個臨時變數
scanf
("%lf"
,&a)
;temp = a *10;
/*通過判斷小數點後一位來判斷是否需要+1*/
if(temp %
10<5)
else
return
0;
但是如果是浮點數,c語言具有直接對需求小數字數取整的功能
如果你想對小數點後一位四捨五入,則可以在printf()中使用格式控制符%.1f,同樣的,如果想對小數點後兩位進行圓整,則可以使用%.2f.
printf
("%.1f"
,11.0/20
);
將可以得到0.6
所以在解決浮點數的圓整問題時,不必要再用第一種方法進行判斷,若進行判斷(在你使用%.nf格式控制符的情況下),則會出錯,得不到自己想要的答案,因為系統已經進行圓整過了,再進行判斷則會導致錯誤判斷.
c語言 四捨五入
對於正的浮點數,最簡單的四捨五入方法就是用這樣的乙個表示式 long x 0.5 但是如果表示式對負數有效的話會更好,即使在你看來負數的情況不會發生。這意味著你可以用乙個條件表示式 x 0 long x 0.5 long x 0.5 這個表示式的返回值就是與浮點變數 x 的值最接近的整數值。如果需要...
關於四捨五入
四捨五入 轉http nssoft.showdoc.asp?did 267 delphi的四捨五入函式round,對於 5的情況,整數部分是奇數,那麼會round up,偶數會round down,例如 x round 17.5 x 18 x round 12.5 x 12 請使用下面的函式代替ro...
關於浮點型的四捨五入以及如何避免四捨五入
a 浮點數列印,進行四捨五入嗎?注意 1.關於浮點數列印,預設並不是四捨五入 有時會四捨五入,有時不會 2.要想實現完全四捨五入 加0.5 但是這種辦法有時也會失效,整型也是進行四捨五入的 4.浮點數的整型也是參與四捨五入的 3.要想完全正確的實現四捨五入 最穩妥的辦法!就是判斷最後一位,然後進行四...