c語言中有沒有四捨五入的函式,C語言有沒有資料的四捨五入?什麼情況下會用到四捨五入?資料型別轉換?

時間 2021-09-15 00:10:59

1樓:詮釋影

double ceil(double x)返回不小於x的最小整數值(然後轉換為double型)。

double floor(double x)返回不大於x的最大整數值。

double round(double x)返回x的四捨五入整數值int abs(int) 返回整數絕對值

double fabs(double) 返回浮點數絕對值

2樓:金色潛鳥

c99 開始有 round() 函式處理 四舍5入。

函式原型:

double round (double x);

float roundf (float x);

long double roundl (long double x);

c++11 有 double round (t x);

----

低於c99 的可以自己寫,例如: 絕對值+0.5,絕對值函式原型:

double fabs (double x);

float fabs (float x);

long double fabs (long double x);

正數和負數的 四舍5入 有天花板和地板的 處理,由你自己選擇(上靠,下靠) 。

天花板和地板函式原型:

double ceil (double x);

float ceil (float x);

long double ceil (long double x);double floor (double x);

float floor (float x);

long double floor (long double x);

c語言有沒有資料的四捨五入?什麼情況下會用到四捨五入?資料型別轉換?

3樓:匿名使用者

c語言中的float和double型別資料是浮點數,所以小數部分就存在四捨五入問題,當指定輸出位數在精度範圍之內時,系統會自動舍入,無需人工干預,如果小數部分也在精度範圍內,比如10.0/2.0 = 5.

0,2位以上的輸出位數時,後面的都是0,此時,當然不需要舍入了。

資料型別轉換有兩種方式,一種是預設強制轉換,比如將char、short、int、long和float型別資料賦給double型別變數時,編譯程式會自動實施轉換,這是因為,在精度更高時,這樣的轉換是內有損失的。另一種是手動強制型別轉換,比如dnum = (double)inum;,意思是將整形變數inum首先轉換為雙精度資料,然後再付給dnum。當將高精度型別變數賦給低精度型別變數時,除非手動強制轉換,否則,編譯程式會有提示的。

4樓:匿名使用者

資料強制轉換是用捨棄的方法,不會用四捨五入,什麼時候用四捨五入是需要詳細說明的,也就是你的業務需求而定,你可以把數字+0.5,然後進行強制轉換

5樓:匿名使用者

有四捨五入的情況,在你想要保留幾位小數的時候,多餘的緊接著的一位要四捨五入

不過c裡面沒有提供四捨五入的函式,不過你可以這樣a = (int)(a*100 + 0.5)/100這只是一個小技巧,對a的第三位進行四捨五入

6樓:奧特曼和他老婆

同樣的困惑,期待解答。尤其是當量化的位寬超過32位時,如何來實現截斷,用(int)x 強制轉換時,正數會出錯,但負數正確,不知何解。

7樓:匿名使用者

double強制轉換成int型的時候保留整數部分的。。

比如double a=1.5;

int b=a;

a就是1。

8樓:匿名使用者

浮點運算時,由於精度的問題,涉及到了四捨五入,這也是為什麼一個很大的數和一個很小的數相加,會出錯的原因。

但資料型別強制轉換時,是採取的捨棄原則,沒有四捨五入。

c語言四捨五入和直接取整

改樂語野涉 c,int x 100 0.5 中x 100就把小數點後兩位移到整數部分了,然後強制轉換為int,再除以float,所以結果為小數點後兩位,其他也可以,不過不是保留兩位小數。你假設x 123.456 x 100 0.5 12345.6 0.5 12346.1 這裡加0.5是為了4舌5入 ...

C語言中有沒有繪圖的函式庫?裡面每個函式的內容和用法是什麼

void calroot double a,double b,double c dert b b 4 a c c語言怎麼使用自己以前編寫的函式,比如自己寫一個函式庫,關鍵是怎麼弄,寫可以。怎麼搞成像 include 預處 自己的函式庫可以直接寫成一個檔案,也可以用兩個檔案,標頭檔案做函式宣告,另一個...

C 或是C語言中,有沒有延遲輸出的命令?

使用延時函式或中斷函式可以實現。可以用sleep 函式,例如sleep 1000 表示延遲1秒。自己做個硬延時就可以了。如果不想佔用資源,可以用定時器,定時時間到了,才執行指定的命令。在c 或是在c語句中,有沒有那種延遲輸出的命令,比如要依次輸出三條語句或是字串,要使輸出第一條後停頓幾秒再輸出第二條...