c語言中float型轉換成int型是什麼規則

2021-03-07 03:59:30 字數 5102 閱讀 1391

1樓:匿名使用者

1、c語言整型使用原碼、反碼、補碼進行編碼,而浮點型使用ieee754進行編碼,所以強制轉換基本上是沒有任何意思的,因為編碼格式不一樣。

2、正確的作法是使用c語言標準庫中的floor和ceil函式來進行向下或者向上取整。比如:

#include

#include

int main()

//結果:up=2 down=1

2樓:匿名使用者

#include

//#include

int main()

;siz=sizeof(p);//列印出陣列p的位元組數printf("sizeof=%d\r\n",siz);

for(i=0;i<14;i++)

for(i2=0;i2<14;i2++)

}#include

#include

int main()

;siz=sizeof(p);//列印出陣列p的位元組數printf("sizeof=%d\r\n",siz);

for(i=0;i<14;i++)

for(i2=0;i2<14;i2++)

}好像vc++6.0執行的結果只有強制轉換有用,不知道是不是我寫的語句有問題

3樓:匿名使用者

c中浮點型轉為整型,直接擷取小數部分,把整數部分作為結果。不必關心儲存細節

4樓:匿名使用者

可以通過強制轉換型別.例如 float x=3.555;

int i;

i=(int)x;

printf("i=%d",i);

5樓:匿名使用者

直接擷取浮點數的整數部分

c語言中如何實現將一個浮點數float轉成int型別?

6樓:紛舞年華

強制型別轉換

比如:float a = 10.5;

int b = (int)a;

這樣 就轉換了,但是不推薦高精度轉低精度 會丟失精度的就像這個,a是10.5 轉換後變成10了小了太多

c語言中float型資料怎麼 取整數部分演算法 或取小數部分

7樓:蟲心菜

分析如下:來

一種簡單的辦源

法是直接強制轉換到int型就是整數部分。減去這個int型就是小數部分了。

**如下:

float n=12.223;

int x=(int)n;

float y=n-(float)x;

得出的x為資料的整數部分,y為資料的小數部分。

拓展資料

浮點型資料型別,float 資料型別用於儲存單精度浮點數或雙精度浮點數。浮點數使用 ieee(電氣和電子工程師協會)格式。浮點型別的單精度值具有 4 個位元組,包括一個符號位、一個 8 位 excess-127 二進位制指數和一個 23 位尾數。

尾數表示一個介於 1.0 和 2.0 之間的數。

由於尾數的高順序位始終為 1,因此它不是以數字形式儲存的。此表示形式為 float 型別提供了一個大約在-3.4e+38 和 3.

4e+38 之間的範圍。

8樓:捐你妹

一種簡單的辦法是直接強制轉換到int型就是整數部分。

減去這個int型就是小數部分了。

9樓:

float x=1234.567,z;

long int y;

取整數部分: y = (int) x;

取小數部分: z = x - y;

10樓:匿名使用者

float n=12.223;

int x=(int)n;

float y=n-(float)x;

11樓:匿名使用者

小數取整

#include

void main()

c語言浮點型轉換為整型怎麼轉換的?

12樓:匿名使用者

第一種是bai利用系統預設的轉換,du即將小數部分zhi截去dao,僅保留整數部分回,如3.6轉換答為3,-5.68轉換為5。

第二種是強制型別轉換,效果與第一種相同,如(int)(-6.666)為-6。

如有其他特殊要求,則需要程式設計解決。

13樓:匿名使用者

c語言中沒有四捨五入,將浮點型轉換成整形時,只保留小數點前面的數值

14樓:匿名使用者

float ftemp;

不要後面bai

的=0;因為一旦你分配du給ftemp了值,它zhi是無法通過dao鍵盤寫入的方式賦給

回的,因為空答間已經被佔用。這不是a=b+c這樣表示式的賦值。

暈,難道要我把源**給你你直接複製?

那就給你吧!

#include

void main()

隨便輸入一個數,然後回車,看結果

15樓:程式猿3號

c語言復有以下幾種取整方法:

1、直接制賦值給整bai

數變數。如:

int i = 2.5; 或 i = (int) 2.5;

這種du方法採用的zhi是捨去小數部分,能dao用於你的問題。

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) = 3

ceil(-2.5) = -2

floor()是向負無窮大舍入,floor(-2.5) = -3;ceil()是向正無窮大舍入,ceil(-2.5) = -2。floor函式能用於你的問題。

5、int b = (int)a;//取整int c = (int)(a+0.5);//四捨五入

c語言的浮點型怎麼轉換為整型?

16樓:幻翼高達

c語言中,浮點型轉換為整型可以用:強制型別轉換、自動型別轉換,例如:(int)3.14、int a = 3.14。

1、強制型別轉換

強制型別轉換是通過型別轉換運算來實現的。其一般形式為:(型別說明符)(表示式),其功能是把表示式的運算結果強制轉換成型別說明符所表示的型別。

例如: (double) a 把a轉換為雙精度浮點型,(int)(x+y) 把x+y的結果轉換為整型。

2、自動型別轉換

(1)執行算術運算時,低型別(短位元組)可以轉換為高型別(長位元組);例如: int型轉換成double型,char型轉換成int型等。

(2)賦值表示式中,等號右邊表示式的值的型別自動隱式地轉換為左邊變數的型別,並賦值給它。

(3)函式呼叫時,將實參的值傳遞給形參,系統首先會自動隱式地把實參的值的型別轉換為形參的型別,然後再賦值給形參。

(4)函式有返回值時,系統首先會自動隱式地將返回表示式的值的型別轉換為函式的返回型別,然後再賦值給呼叫函式返回。

17樓:程式猿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) = 3

ceil(-2.5) = -2

floor()是向負無窮大舍入,floor(-2.5) = -3;ceil()是向正無窮大舍入,ceil(-2.5) = -2。floor函式能用於你的問題。

5、int b = (int)a;//取整int c = (int)(a+0.5);//四捨五入

18樓:步成文赤豪

c語言中沒有四捨五入,將浮點型轉換成整形時,只保留小數點前面的數值

19樓:匿名使用者

float ftemp;

不要後面的=0;因為一旦你分配給ftemp了值,它是無法通過鍵盤寫入的方式

賦給的,因為空間已經被佔用。這不是a=b+c這樣表示式的賦值。

暈,難道要我把源**給你你直接複製?

那就給你吧!

#include

void main()

隨便輸入一個數,然後回車,看結果

20樓:匿名使用者

可通過強制型別轉換或賦值過程中自動轉換。

強制型別轉換。c語言提供強制型別轉換符,其可表示為(型別),該操作符具有從右向左的結合型,用法示例為「(型別)變數」,則對應變數被轉換為括號中 的型別,因此想把浮點型轉換為整型時,括號中使用int即可:

如果直接把浮點型變數賦值給整型,其會自動轉換為整型:

但是注意當float型變數轉換為整型時,小數部分被捨棄,但不會遵循四捨五入的原則,如果浮點型別的值過大,超過整型所能容納的範圍,則結果是不確定的。

c語言中我的**一個float型的二位小數*100後轉化為int型會-1 比如0.01*100後是0;

21樓:匿名使用者

你可以先列印print(「%f」, n);看看

其實它不是0.1、0.2、0.3。。。

而是0.09999999, 0.199999........

c語言怎樣將無符號整型轉換成浮點型

c語言中來 無符號整型轉源換成浮點型方法bai 如下 unsigned int x 123 1 輸出強制轉換,du如 printf f x 這樣的輸出因為zhi f與x的類dao型不同,導致輸出資料異常 printf f float x 強制轉換成浮點型,可正確輸出 2 儲存到相應的變數中,如 fl...

C語言中,如何將陣列中的數值轉換成字串輸出

include void inttostr int i,char c,int len 需要注意的是,這裡沒有終結符,故需要知道陣列的 大小 陣列的大小是編譯時常量 char dest str 目標字串dest str char malloc sizeof char sizeof array 1 為字...

如何把C盤轉換成NTFS

轉換方法 1.點 開始 程式 附件 命令 提示符 這是windows xp內建的一個類似於dos的介面,內部所有的指令語句和dos下的基本相同 2.開啟視窗以後,在游標的提示符下輸入 convert c fs ntfs 然後回車。注意在 covert 的後面有一個空格。3.接著系統會要求你輸入c盤的...