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語句中,有沒有那種延遲輸出的命令,比如要依次輸出三條語句或是字串,要使輸出第一條後停頓幾秒再輸出第二條...