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

2021-04-18 12:28:08 字數 4146 閱讀 1479

1樓:匿名使用者

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

2樓:匿名使用者

利用取整運算的截斷特點實現。

比如: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

3樓:丶無雙

你是說小數點之後的數嗎?今天我剛聽課,不知道說的對不對哈。

如果沒有定義doubule類的話,好像是直接取整的。小數點後面的數直接捨棄啊。

4樓:

floor函式與轉換型別為int都是截斷取整(向下取整)。

ceil函式是向上取整。

四捨五入的話可以寫成floor(x+0.5)

c語言中,5/2結果為2,取整不用四捨五入嗎

5樓:匿名使用者

c語言的取整是截斷小數部分,不會四捨五入運算

你如果需要四捨五入,可以:int a; float b; b=5/2; a=b+0.5;

在c語言中,相除後取整的時候,我記得有些需要四捨五入,有些直接取整數部分,分別是哪些情況?

6樓:匿名使用者

round()函式會四捨五入。

簡單的除法運算沒有四捨五入,如果兩個整數相除,那麼商也保留整數部分,而且是直接擷取整數部分,不四捨五入,浮點數相除,會返回準確的商。

7樓:匿名使用者

到底需要四捨五入還是直接取整不是程式說了算了,是根據實際情況說了算的這個要看你需要的結果了

比如說double x;

printf("%d",int(x)) 取整printf("%d",int(x+0.5)) 四捨五入

8樓:華師來的

int i=1;

int j=2;

float k=1;

float s;

s=i/j;//此時s=0.0

s=k/j;//這時s=0.5;

c語言:int型的強制型別轉換是按四捨五入嗎?

9樓:跪著作揖

強制型別轉換int的結果只保留整數部分,不是四捨五入。

例如:int 3.14,結果為3;

int  3.58,結果也為3。

int是將一個數值向下取整為最接近的整數的函式。int是資料庫中常用函式中的取整函式,常用來判別一個數能否被另一個數整除。

擴充套件資料

int 函式使用的注意事項:

1、 語法int(number)其中number是需要進行向下舍入取整的實數。

2、 int函式是不進行四捨五入,直接去掉小數部分取整。

3、int函式處理負數的小數時總是向上進位的。

標準規定int的最小取值範圍是 -32767 到 32767。

int的取值範圍因機器而異,但是一定要大於或者等於 -32767 到 32767。一般來說,int佔用一個字的記憶體空間。因此,字長為 16 位(bit)的舊式 ibm 相容機使用 16 位來儲存整型int,取值範圍是-32768 到 32767 。

目前的個人電腦一般都是 32 位字長的,這些電腦中,int一般也是 32 位的,取值範圍是 -2147483648 到 2147483647。對於使用 64 位 cpu 的電腦,使用更多位儲存int也是很自然的事情,取值範圍當然也會更大。

10樓:匿名使用者

作為函式,int函式指資料庫中常用函式中的

「向下取整函式」。常用來取一個數中的整數部分。int是將一個數值向下取整為最接近的整數的函式。為取整函式。

意思是將被轉換數直接擷取整數部分,不進行四捨五入運算。例如:

int(123.456);//取值為123

int(-123.456);//取值為124

int(1234.56);//取值為1234

擴充套件資料:

除int外,其他強制轉換有:

void:宣告函式無返回值或無引數,宣告無型別指標,顯示丟棄運算結果。(c89標準新增)

char:字元型型別資料,屬於整型資料的一種。(k&r時期引入)

int:整型資料,表示範圍通常為編譯器指定的記憶體位元組長。(k&r時期引入)

float:單精度浮點型資料,屬於浮點資料的一種。(k&r時期引入)

double:雙精度浮點型資料,屬於浮點資料的一種。(k&r時期引入)

_bool:布林型(c99標準新增)

_complex:複數的基本型別(c99標準新增)

_imaginary:虛數,與複數基本型別相似,沒有實部的純虛數(c99標準新增)

_generic:提供過載的介面入口(c11標準新增)

修飾關鍵字:

short:修飾int,短整型資料,可省略被修飾的int。(k&r時期引入)

long:修飾int,長整型資料,可省略被修飾的int。(k&r時期引入)

long long:修飾int,超長整型資料,可省略被修飾的int。(c99標準新增)

signed:修飾整型資料,有符號資料型別。(c89標準新增)

unsigned:修飾整型資料,無符號資料型別。(k&r時期引入)

restrict:用於限定和約束指標,並表明指標是訪問一個資料物件的唯一且初始的方式。(c99標準新增)

11樓:聽不清啊

不是的。

c語言的int型的強制型別轉換是截尾取整的。

即int x=(int)3.997;

x的值是3。

12樓:匿名使用者

不會四捨五入,會直接截斷取整數部分。

13樓:匿名使用者

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

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

5)/100.0或a=(int)(a*100+0.5)/100.

0,,,我的問題是,,兩個都行嗎?有什麼區別,我做過實驗,貌似沒什麼區別……

14樓:直接用使用者名稱

不是 是捨棄小數部分

c語言中什麼運算只取整數部分,什麼時候不但取整,還要四捨五入?? 發現c語言中很多時候不用四捨五入

15樓:夢羽天堂

取整要看型別的自動轉換了,,比如a和b都是整形資料,那麼a/b的結果就一定是整形。結果就取整數部分,如果其中有一個是浮點型,那麼結果就是浮點型,但是不會四捨五入,如果需要四捨五入那麼應該寫成a/b+0.5.

自動轉換的順序是char,short,int,float,double,越往後優先順序越高

16樓:狂

取整的話 還是要看資料型別的 int型別的除法就是取整的

至於四捨五入什麼的 沒有專門的規定 可以自己處理一下即可

17樓:匿名使用者

定義int的時候就取整了

18樓:匿名使用者

c語言裡面都沒有四捨五入。的都是隻取整數部分。

19樓:鬼火狼煙

到底需要四捨五入還是直接取整不是程式說了算了,是根據實際情況說了算的這個要看你需要的結果了

比如說double x=1.3;

printf("%d",int(x)) 取整printf("%d",int(x+0.5)) 四捨五入

C語言向零取整原則的含義,具體一點

舉例子吧,3除以2結果本來應該是 1.5,但是向0取整後結果就是 1 不是 2,因為 1更靠近0 如果是3除以版2向0取整的話結果就權是1。也就是原始的算出來的數以靠近0的原則進行取捨。不用遵循四捨五入。就是遇到強制型別轉換的時候,比如浮點型轉換為整形的時候,系統會把資料的小數點以後的資料全部丟掉,...

c語言刪除重複資料,c語言程式設計 刪除一批正整數中重複的值

先排序,後去重 include char func char s for p s,q s 1 p q return s int main void 排序前 2 6 5 1 1 9 7 6 6 6 排序後 9 7 6 6 6 6 5 2 1 1 刪除相同元素後 9 7 6 5 2 1 press an...

什麼是C語言和C語言C語言和C語言的區別是什麼?

1 c語言。c語言誕生得非常早,當時人們普遍還習慣用組合語言編寫軟體,並且沒有什麼統一,通用的作業系統,基本上軟體都是從0開始寫的。c語言的方針便是比彙編方便易用,一起不要損失彙編的表達能力。所以c語言可以看成是 高階的彙編 語言。c語言的源 基本上可以非常容易地對應到彙編 並且可以不需要什麼執行時...