關於c語言中如何四捨五入 圓整 的問題

2021-09-12 17:43:50 字數 946 閱讀 5633

關於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.要想完全正確的實現四捨五入 最穩妥的辦法!就是判斷最後一位,然後進行四...