請問c語言問題float型資料轉int把整數部分和小

2021-04-17 14:14:05 字數 5073 閱讀 6173

1樓:金色潛鳥

float型資料精度只有 有效數字 6-7 位,所以存放12345.53231 時,只能精確到 12345.53。

要存放 12345.53231,可以用 double 或 char s.

double 仍有回 10進位制到2進位制,2進位制回答10進位制的誤差問題。

#include

int main()

輸出:a=12345 b=53231

a=12345 b=53231

2樓:匿名使用者

首先定義變數 int a,b ; float c,d然後將c值賦予給a,即a得到c的整數部分

接著用d=c-a,d為c的小數部分

最後確定出你要精確的位數,將d乘以對應的10的n次方,就可以了

3樓:匿名使用者

這個看精度要求,浮點數本身就不是很精確的。如果要求很精確的分離兩者,可

內以從二進位制的定義著容手,float型資料定義如下: 1bit(符號位) 8bits(指數位) 23bits(尾數位)

可以考慮將其轉換為long,再將整數值扣除,從而獲得小數

4樓:匿名使用者

先把整數部分取出來,小數部分嘛,想保留多少位就放大10^n倍就行了

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

5樓:蟲心菜

分析如下:來

一種簡單的辦源

法是直接強制轉換到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 之間的範圍。

6樓:捐你妹

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

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

7樓:

float x=1234.567,z;

long int y;

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

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

8樓:匿名使用者

float n=12.223;

int x=(int)n;

float y=n-(float)x;

9樓:匿名使用者

小數取整

#include

void main()

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

10樓:匿名使用者

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

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

#include

#include

int main()

//結果:up=2 down=1

11樓:匿名使用者

#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執行的結果只有強制轉換有用,不知道是不是我寫的語句有問題

12樓:匿名使用者

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

13樓:匿名使用者

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

int i;

i=(int)x;

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

14樓:匿名使用者

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

c語言在由float強制轉換int的情況下小數部分會不會變??

15樓:修者世界

強制轉換的話,小數部分將被捨去,不會進行四捨五入處理。

比如浮點數13.45,如果轉換為整數為13,

浮點數13.87,如果轉換為整數仍然為13.

16樓:史綺

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

17樓:匿名使用者

小數部分丟失。

如 123.45 轉換為int 為 123

c語言中關於改變資料型別以提取float中的整數和小數部分

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

18樓:跪著作揖

強制型別轉換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也是很自然的事情,取值範圍當然也會更大。

19樓:匿名使用者

作為函式,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標準新增)

20樓:聽不清啊

不是的。

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

即int x=(int)3.997;

x的值是3。

21樓:匿名使用者

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

22樓:匿名使用者

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

不過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,,,我的問題是,,兩個都行嗎?有什麼區別,我做過實驗,貌似沒什麼區別……

23樓:直接用使用者名稱

不是 是捨棄小數部分

c語言 float型資料輸入需要注意什麼嗎

include void main double func float x,float y 如果用float最好不要用double返回 c語言可不可以判斷float型別中是否輸入了字元型別的資料!應該不可已 當字元型別的資料給float型別的變數賦值時會自動將char型資料轉換成float型別 在賦...

c語言中,float型和double型變數如果不指定寬度,應

double與float的區別在於在記憶體中存放資料時佔用的記憶體不一樣,前者8位元組,後者4位元組,也就是前者儲存的小數位數比後者多一倍。舉例說明對於1.9999996666,按照float輸出,結果可能為1.999999,如果按照double可能為1.999999。因為c語言預設輸出小數位數都取...

c語言中關於long和float兩種資料型別

long和float兩種資料型別軍師c語言中常見資料型別 long資料型別 1.long 是c語言的一個關鍵字,代表一種資料型別,中文為長整型。2.long是long int的簡寫,也就是說,在c語言中long int型別和long型別是相同的。3.long型可以表示的整型數字範圍為 2,147,4...