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...