① c語言中相處不取整的問題
int a = 3,c = 2;
float b;
b = (float) a/c; //運行的時候強制類型轉換
printf("%f \n",b);
② C語言取整
修改之後的程序
#include "stdafx.h"
#include 「stdio.h」
int main(int argc, char* argv[])
{
int a;
double s;
scanf("%lf",&s);
a=(int)s;
printf("%d\n",a);
return 0;
}
③ C語言中如何取整
參與運算量均為整型時,
結果也為整型,捨去小數。如果運算量中有一個是實型,則結果為雙精度實型。
printf("%d,%d\n",10/3,-10/3);
printf("%f,%f\n",10.0/3,-10.0/3);
c語言有以下幾種取整方法:
1、直接賦值給整數變數。如:
int
i
=
2.5;
或
i
=
(int)
2.5;
這種方法採用的是捨去小數部分,可以用於你的問題。
2、c/c++中的整數除法運算符"/"本身就有取整功能(int
/
int),而下面介紹的取整函數返回值是double。整數除法對正數的取整是捨去小數部分,但是整數除法對負數的取整結果和使用的c編譯器有關。
3、使用floor函數。floor(x)返回的是x的整數部分。如:
floor(2.5)
=
2
floor(-2.5)
=
-3
4、使用ceil函數。ceil(x)返回的是不大於x的最小整數。如:
ceil(2.5)
=
2
floor和ceil對於正數沒有區別,但是對於負數結果不同。
④ C語言中如何將一個小數取整,不四捨五入
有差別,第一個不會做四捨五入的,它精確的進行了計算,第二個是正確的,進行了舍運算,這個運算是在(int)的時候利用類型轉換做的
如果你輸出的結果是一樣的,我懷疑是你在輸出的時候指定了輸出精度,你檢查一下你的printf或者cout
⑤ C語言有哪些取整函數
C語言有以下幾種取整方法:
1、直接賦值給整數變數。如:
int i = 2.5; 或 i = (int) 2.5;
這種方法採用的是捨去小數部分
2、C/C++中的整數除法運算符「/」本身就有取整功能(int / int),但是整數除法對負數的取整結果和使用的C編譯器有關。
3、使用floor函數。floor(x)返回的是小於或等於x的最大整數。如:
floor(2.5) = 2
floor(-2.5) = -3
4、使用ceil函數。ceil(x)返回的是大於x的最小整數。如:
ceil(2.5) = 3
ceil(-2.5) = -2
floor()是向負無窮大舍入,floor(-2.5) = -3;ceil()是向正無窮大舍入,ceil(-2.5) = -2。
⑥ C語言中什麼運算只取整數部分,什麼時候不但取整,還要四捨五入 發現C語言中很多時候不用四捨五入
取整要看類型的自動轉換了,,比如a和b都是整形數據,那麼a/b的結果就一定是整形。結果就取整數部分,如果其中有一個是浮點型,那麼結果就是浮點型,但是不會四捨五入,如果需要四捨五入那麼應該寫成a/b+0.5.自動轉換的順序是char,short,int,float,double,越往後優先順序越高
⑦ C語言取整問題
sqrt(2*a-0.25)是不會取整的,如果你聲明了n為int或long型,在算完sqrt(2*a-0.25)-0.5後再取整。你可以編個程驗證下,就知道了