c語言中,四捨五入函數是什麼

round(x)
參數時double型,返回小數對整數部分的四捨五入值
比如 round(3.623); 返回4

② c語言中怎麼四捨五入

設 float x ; int y ; 則有y=(int)(x+0.5)>(int)x?(int)x+1:(int)x進行上述運算後,y 的值就是 x 四捨五入的結果。

③ c語言怎麼實現四捨五入

int myround(double indata,int precision,double *outdata)

{

long pre=1,i;

for (i=0;i<precision;i++) pre=pre*10;

if ( cy_FloatCompare(indata,0.00)>0 )

*outdata=(int)((indata*pre)+0.5)/100.00;

else

*outdata=(int)((indata*pre)-0.5)/100.00;

return 0;

}

拓展資料

C語言是一門通用計算機編程語言,應用廣泛。C語言的設計目標是提供一種能以簡易的方式編譯、處理低級存儲器、產生少量的機器碼以及不需要任何運行環境支持便能運行的編程語言。

盡管C語言提供了許多低級處理的功能,但仍然保持著良好跨平台的特性,以一個標准規格寫出的C語言程序可在許多電腦平台上進行編譯,甚至包含一些嵌入式處理器(單片機或稱MCU)以及超級電腦等作業平台。



④ c語言中有沒有四捨五入的函數

double ceil(double x)返回不小於x的最小整數值(然後轉換為double型)。
double floor(double x)返回不大於x的最大整數值。
double round(double x)返回x的四捨五入整數值
int abs(int) 返回整數絕對值
double fabs(double) 返回浮點數絕對值

⑤ c語言中的四捨五入怎麼做

利用取整運算的截斷特點實現。
比如:int a=0.75;取整後賦值給a的是0,小數點後面的被截斷了。內
如果要做整數的四捨五入,容那麼可以:a=(int)(0.75+0.5);取整後得到的與數學中四捨五入的結果一致,都是1;
如果要進行小數點後面的四捨五入,可以這樣計算:
要保留小數點後面兩位的小數,即在小數點後面兩位上做四捨五入,0.756
float a=0.756,b; int x; b=a*100; b+=0.5; x=b; b=x/100;
運算是這樣的:先將0.756乘以100,得到75.6,然後利用取值運算的截斷做四捨五入,75.6+0.5=76.1取整後等於76,再除以100,得到結果:0.76

⑥ c語言 四捨五入

將 printf("%lf",&a);
改為 printf("%.2f",a);
其中 %.2f 是控制輸出的語句,表示輸出時小數點後保留兩位數。如果計算結果的小數點後的數位大於二則四捨五入,小數點後保留兩位;若計算結果小數後沒有達到兩位,則輸出時補零,所以輸出的結果小數點後仍然有兩位數。
而「&」用在輸入輸出語句中表示取地址,
而且只能用在輸入時,表示取你要賦值的變數的地址,從而將你所輸入的值傳遞給你要賦值的變數,而上面用在輸入時顯然是錯的

⑦ c語言中有沒有進行四捨五入的函數

首先,這個問題的解決方案取決於我們所需要的轉換方式:是截斷轉換還是舍入轉換;另一方面,它基本與我們需要轉換的浮點數類型無關──無論是 float 還是 double,甚至是 long double。

有時人們覺得一個浮點變數的值和一個整型變數的值可以完全一樣地可表示,你可能相信 x 值為 100.0 時我們只要把它轉換為整型就會得到整數 100。但在任何時候,你都不應依賴於期望一個浮點數的值能夠與一個整型數的值完全相等,你真正所需要的可能是四捨五入。

截斷轉換的意思是拋棄所有的小數部分,例如 3.9 將被轉換為 3,這種轉換是 C 語言中將浮點數轉換為整型數的默認方式,也就是說無論在什麼時候,只要將浮點數轉換為整型數,採用的都是這種方式。關於這種轉換何時發生,有一些特殊的規定,這里我們僅指出賦值時所發生的轉換,比如

i = x;

其中 i 是一個整型數,x 是一個浮點數。當然,在顯式類型轉換的情況下,這樣的轉換也會發生,比如

(int) x

舍入轉換是指獲取與給定浮點數最為接近的整型數,因此 3.9 應被轉換為 4,這才是人們提出我們正在解決的這個問題時所真正需要的。對於舍入轉換,我們沒有直接的工具(比如運算符或者庫函數),嚴格地說,舍入轉換並非與 C 標准里所定義的轉換在同一意義下的轉換。

對於正的浮點數,最簡單的四捨五入方法就是用這樣的一個表達式

(long) (x+0.5)

但是如果表達式對負數有效的話會更好,即使在你看來負數的情況不會發生。這意味著你可以用一個條件表達式:

x >= 0 ? (long)(x+0.5) : (long)(x-0.5)

這個表達式的返回值就是與浮點變數 x 的值最接近的整數值。

如果需要大量地使用舍入轉換,則可以寫這樣的一個宏:

#define round(x) ((x)>=0?(long)((x)+0.5):(long)((x)-0.5))

這可以在某種程度上使代碼更具可讀性。

注意到這樣的轉換會將 1.5 變為 2 但卻將 -1.5 變為 -2,那麼對於這樣正好處於兩個整數之間的浮點數,你可能需要做一些其它的處理,但這在實際當中並不十分重要。

需要小心的是,將一個浮點數轉換為一個整型數可能導致上溢,但大多數的實現都沒有進行相關的判斷。用 long 替代 int 會給出一個更寬的范圍(建議使用 long),但仍然比浮點數的范圍要小得多。

如果效率不是至關重要的話,則可以定義這樣的一個函數(而不是簡單地寫一個 #define),使你的程序更具魯棒性:

long round(double x) {

assert(x >= LONG_MIN-0.5);

assert(x <= LONG_MAX+0.5);

if (x >= 0)

return (long) (x+0.5);

return (long) (x-0.5);

}

如果在意效率的話,可以寫這樣一個宏

#define round(x) ((x) < LONG_MIN-0.5 || (x) > LONG_MAX+0.5 ?\

error() : ((x)>=0?(long)((x)+0.5):(long)((x)-0.5))

這要求在程序中有 #include <limits.h>,並且有一個處理錯誤的函數 error,其返回值為 long 類型。

⑧ C語言取整是4舍5入還是截斷取整

答:C語言取整是截斷取整,所以若計算5.95則取整為5。

⑨ c語言四捨五入

#include<stdio.h>
main()
{
double a;
printf("清輸入一個小數 ");
scanf("%lf",&a);
a=(int)(a*100+0.5);
a=a/100;
printf("輸出的四捨五入結果是 %.2f",a);
}
這樣就對了,輸內入格容式有錯

⑩ C語言怎麼四捨五入

利用取整運算的截抄斷特點實現。
比如:int a=0.75;取整後賦值給a的是0,小數點後面的被截斷了。
如果要做整數的四捨五入,那麼可以:a=(int)(0.75+0.5);取整後得到的與數學中四捨五入的結果一致,都是1;
如果要進行小數點後面的四捨五入,可以這樣計算:
要保留小數點後面兩位的小數,即在小數點後面兩位上做四捨五入,0.756
float a=0.756,b; int x; b=a*100; b+=0.5; x=b; b=x/100;
運算是這樣的:先將0.756乘以100,得到75.6,然後利用取值運算的截斷做四捨五入,75.6+0.5=76.1取整後等於76,再除以100,得到結果:0.76