亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

這個程序第四行定義浮點型變量num并賦值為2.5的時候用int沒問題嗎,int不是整型嘛,雖然運行結果是對的,但還是不太明白,額

這個程序第四行定義浮點型變量num并賦值為2.5的時候用int沒問題嗎,int不是整型嘛,雖然運行結果是對的,但還是不太明白,額

C
菠蘿不困 2015-07-13 16:13:16
#include<stdio.h>int main(){int num=2.5; ? ??//定義浮點型變量num并賦值為2.5int numtwo=(double)num;printf("num的整數部分是%d\n");return 0;}
查看完整描述

3 回答

已采納
?
onemoo

TA貢獻883條經驗 獲得超454個贊

賦值、初始化時會自動發生類型轉換:等號右側的類型會“臨時”轉換為等號左側的類型,再進行賦值。注意前面的臨時二字,這并不會改變等號右側變量本身的類型和值。

不是所有的類型間都可以進行類型轉換的,如果類型間沒有類型轉換規則,就不會發生自動類型轉換,且編譯器會報錯。

浮點型轉換為整型的規則大致上就是直接丟棄小數部分,保留整數部分。

所以用浮點型值來初始化整型變量是合法的。

查看完整回答
1 反對 回復 2015-07-13
?
南木堯

TA貢獻1條經驗 獲得超1個贊

1樓時對的,肯定會發生,數據丟失,內部進行了強制轉換

查看完整回答
1 反對 回復 2015-07-13
?
慕運維8283692

TA貢獻31條經驗 獲得超17個贊

#include<stdio.h>

int main()

{

int num=2.5; ? ? //定義浮點型變量num并賦值為2.5

int numtwo=(double)num;

printf("num的整數部分是%d\n",num);

return 0;

}

是這樣吧?float型自動轉換為int型會有數據丟失,我的代碼,結果是2。把2.5的小數部分直接舍去了

查看完整回答
1 反對 回復 2015-07-13
  • 菠蘿不困
    菠蘿不困
    額,我打的缺了點,就是第六行是printf("num的整數部分是%d\n",numtwo);的話執行出來也是2啊...還是不明白怎么轉換的0.0,第四行定義浮點型數據用int沒問題嗎
  • 菠蘿不困
    菠蘿不困
    額,明白啦,嘿嘿,謝啦
  • 3 回答
  • 0 關注
  • 2104 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號