#include<stdio.h>int main(){int num=2.5; ? ??//定義浮點型變量num并賦值為2.5int numtwo=(double)num;printf("num的整數(shù)部分是%d\n");return 0;}
3 回答
已采納

onemoo
TA貢獻883條經(jīng)驗 獲得超454個贊
賦值、初始化時會自動發(fā)生類型轉(zhuǎn)換:等號右側(cè)的類型會“臨時”轉(zhuǎn)換為等號左側(cè)的類型,再進行賦值。注意前面的臨時二字,這并不會改變等號右側(cè)變量本身的類型和值。
不是所有的類型間都可以進行類型轉(zhuǎn)換的,如果類型間沒有類型轉(zhuǎn)換規(guī)則,就不會發(fā)生自動類型轉(zhuǎn)換,且編譯器會報錯。
浮點型轉(zhuǎn)換為整型的規(guī)則大致上就是直接丟棄小數(shù)部分,保留整數(shù)部分。
所以用浮點型值來初始化整型變量是合法的。

慕運維8283692
TA貢獻31條經(jīng)驗 獲得超17個贊
#include<stdio.h>
int main()
{
int num=2.5; ? ? //定義浮點型變量num并賦值為2.5
int numtwo=(double)num;
printf("num的整數(shù)部分是%d\n",num);
return 0;
}
是這樣吧?float型自動轉(zhuǎn)換為int型會有數(shù)據(jù)丟失,我的代碼,結(jié)果是2。把2.5的小數(shù)部分直接舍去了
- 3 回答
- 0 關(guān)注
- 2084 瀏覽
添加回答
舉報
0/150
提交
取消