1樓:程式猿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);//四捨五入
2樓:那舒郝婷玉
c語言中沒有四捨五入,將浮點型轉換成整形時,只保留小數點前面的數值
c語言的浮點型怎麼轉換為整型?
3樓:幻翼高達
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)函式有返回值時,系統首先會自動隱式地將返回表示式的值的型別轉換為函式的返回型別,然後再賦值給呼叫函式返回。
4樓:程式猿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);//四捨五入
5樓:步成文赤豪
c語言中沒有四捨五入,將浮點型轉換成整形時,只保留小數點前面的數值
6樓:匿名使用者
float ftemp;
不要後面的=0;因為一旦你分配給ftemp了值,它是無法通過鍵盤寫入的方式
賦給的,因為空間已經被佔用。這不是a=b+c這樣表示式的賦值。
暈,難道要我把源**給你你直接複製?
那就給你吧!
#include
void main()
隨便輸入一個數,然後回車,看結果
7樓:匿名使用者
可通過強制型別轉換或賦值過程中自動轉換。
強制型別轉換。c語言提供強制型別轉換符,其可表示為(型別),該操作符具有從右向左的結合型,用法示例為「(型別)變數」,則對應變數被轉換為括號中 的型別,因此想把浮點型轉換為整型時,括號中使用int即可:
如果直接把浮點型變數賦值給整型,其會自動轉換為整型:
但是注意當float型變數轉換為整型時,小數部分被捨棄,但不會遵循四捨五入的原則,如果浮點型別的值過大,超過整型所能容納的範圍,則結果是不確定的。
在c語言中,如何將一個浮點數變換成整數?
8樓:幻翼高達
需要準備的材料分別有:電腦、c語言編譯器。
1、首先,開啟c語言編譯器,新建一個初始.cpp檔案,例如:test.cpp。
2、在test.cpp檔案中,輸入c語言**:double a = 2.71828;printf("%d", int(a));。
3、編譯器執行test.cpp檔案,此時成功將浮點數2.71828轉換為了整數2。
9樓:
在c語言中,將一個浮點數變換成整數的示例:
main()
float f=5.75;
執行程式,輸出結果為f=5,f=5.750000。 f=5即為由浮點數轉化出的整數。
上述示例中f雖強制轉為int型,但只在運算中起作用, 是臨時的,而f本身的型別並不改變。因此,(int)f的值為 5(刪去了小數)而f的值仍為5.75。
擴充套件資料
c語言中賦值中的型別轉換規則
當賦值運算子兩邊的運算物件型別不同時,將要發生型別轉換, 轉換的規則是:把賦值運算子右側表示式的型別轉換為左側變數的型別。具體的轉換如下:
(1) 浮點型與整型
將浮點數(單雙精度)轉換為整數時,將捨棄浮點數的小數部分, 只保留整數部分。將整型值賦給浮點型變數,數值不變,只將形式改為浮點形式, 即小數點後帶若干個0。注意:
賦值時的型別轉換實際上是強制的。
(2) 單、雙精度浮點型
由於c語言中的浮點值總是用雙精度表示的,所以float 型資料只是在尾部加0延長為double型資料參加運算,然後直接賦值。double型資料轉換為float型時,通過截尾數來實現,截斷前要進行四捨五入操作。
(3) char型與int型
int型數值賦給char型變數時,只保留其最低8位,高位部分捨棄。
char型數值賦給int型變數時, 一些編譯程式不管其值大小都作正數處理,而另一些編譯程式在轉換時,若char型資料值大於127,就作為負數處理。
對於使用者來講,如果原來char型資料取正值,轉換後仍為正值;如果原來char型值可正可負,則轉換後也仍然保持原值, 只是資料的內部表示形式有所不同。
10樓:匿名使用者
強制型別轉換運算 比如
float a=3.5;
int c;
c=(int)a;
11樓:匿名使用者
c語言提供了強制型別轉換運算子,可以強制將一個表示式的值轉換成所需型別。
例如:(double)a 可以把a強制轉換成double型的。
還有一種資料型別轉換是系統自動的。參考相關書籍即可。例如將一個實型的資料賦給整型的變數時。系統自動把實數的整數部分賦給整型變數。
12樓:匿名使用者
直接進行強轉啊
double c = 1.2;
int a = int(c);不就可以了嗎
c語言中float型轉換成int型是什麼規則
13樓:匿名使用者
1、c語言整型使用原碼、反碼、補碼進行編碼,而浮點型使用ieee754進行編碼,所以強制轉換基本上是沒有任何意思的,因為編碼格式不一樣。
2、正確的作法是使用c語言標準庫中的floor和ceil函式來進行向下或者向上取整。比如:
#include
#include
int main()
//結果:up=2 down=1
14樓:匿名使用者
#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執行的結果只有強制轉換有用,不知道是不是我寫的語句有問題
15樓:匿名使用者
c中浮點型轉為整型,直接擷取小數部分,把整數部分作為結果。不必關心儲存細節
16樓:匿名使用者
可以通過強制轉換型別.例如 float x=3.555;
int i;
i=(int)x;
printf("i=%d",i);
17樓:匿名使用者
直接擷取浮點數的整數部分
c語言 怎樣將無符號整型轉換成浮點型
18樓:匿名使用者
c語言中來
無符號整型轉源換成浮點型方法bai
如下:unsigned int x=123;
1、輸出強制轉換,du如:
printf("%f", x ); //這樣的輸出因為zhi%f與x的類dao型不同,導致輸出資料異常
printf("%f", (float)x ); //強制轉換成浮點型,可正確輸出
2、儲存到相應的變數中,如:
float fval;
fval=x ; //系統會隱式轉換 因float的有效數位最大為7位,所以,並不是所有整數都可以用float型別變數來表示,所以,最好使用double型別來儲存任意的整數
printf("%f", fval ); //輸出正常double dval;
dval=x ; //系統會隱式轉換
printf("%f", dval ); //輸出正常
19樓:匿名使用者
使用強制型別轉換,如:
int a;
(float)a就表示把int型別的a強制轉換成float型。
但是a一旦定義成int型,就不能改變a自身的資料型別。
20樓:谷歌三下也知道
一個最簡單的轉換例子,希望能版
幫到你權
#include
void main()
c語言浮點型、整形轉換問題
21樓:盤合厚珺婭
很正常,
浮點型別是有誤差的
可以用四捨五入的方式,
對大於0的數b=
(int)(a+0.5)
c語言字串型別轉換為整型或浮點怎麼做
22樓:
#include
double atof( const char *str );
功能:將字串str轉換成一個雙精度數值並返回結果。 引數str 必須以有效數字開頭,但是允許以「e」或「e」除外的任意非數字字元結尾。例如:
x = atof( "42.0is_the_answer" );
x的值為42.0.
#include
int atoi( const char *str );
功能:將字串str轉換成一個整數並返回結果。引數str 以數字開頭,當函式從str 中讀到非數字字元則結束轉換並將結果返回。例如,
i = atoi( "512.035" );
i 的值為 512.
怎麼用C語言將英文月份轉換為數值月份
scanf s d d m,day,year int t 1 避免他預設為0.int month t strcmp jan m 判斷兩個字串是否相等,相等就返回一個0.if t 0 怎麼組織下,你自己看吧 呼叫日期函式直接獲取當前日期,結果可以為數值。如果自己定義,可以考慮用列舉型別一一對映。c語言...
c語言如何把某個函式名轉換為字串
根據編譯環境,有如下方式 1 部分編譯器中,支援 function 或 func 巨集。該巨集為編譯器定義,值為被呼叫函式的函式名轉換成的字串。如在func 中呼叫 function 則該巨集的值為 func 2 如果編譯器不支援上述巨集名,那麼需要手動新增巨集。可以有如下兩種方式 a.直接定義對應...
C中字串轉換為byte型陣列,C中如何將byte轉化為字串
1 函式getbytearray返回轉換 後的位元組陣列,完整程式如下 class program b console.writeline public static byte getbytearray string shex 返回位元組陣列 return bytlist.toarray 2 執行結...