1樓:巧
float x;你是定義的單精度型,int i;定義的是整型。
i=(int)x;是將x強制轉換成整型。整型整型,就是要整數部分,小數部分就會捨去掉。
printf("x=%f,i=%d\n",x,i);輸出時,x是以百分號f輸出,那麼就不是以整型輸出。在整數後面就會跟六位小數部分,沒有值的位數會以0補上。就像此題的輸出,x=3.
60000後面就是用0補出。
由於 i 的值是x的值強制轉換的整型資料,後面就不會有0佔位的情況。就直接輸出3,後面小數就去掉了。
若想要一個單精度資料保留小數位數的話在輸出時候可以這樣書寫:printf("x=%n.mf");其中的n和m,即輸出總共佔n位其中有m位小數 如a=1.
23456 用%4.2f輸出為1.23如果用%5,1f輸出為123.
4即長度為5小數為1!這裡也有當原數字長度小於n時左端補空格這個規則!還有就是當n前面有個負號時即%-nf或%-n.
mf時就右端補空格!
2樓:
i=(int)x; int強制轉換表示只保留x數值的整數部分,捨去小數部分,不是四捨五入!例如x=4.7
(int)x 結果就是4了。
3樓:白貓
強制將浮點數轉化為整型型別,並不是四捨五入的,而是直接取整!想實現四捨五入,需要自己寫函式的,大致思路就是整數和小數部分分開,然後通過判斷小數部分返回四捨五入值
4樓:發憤圖強的大悟
說明float型強制轉換成int的原則是直接捨棄小數點後面的數
5樓:德眾
比如說(int)5.6,就強制轉化為5,(double)5強制轉化為5.0,計算機不懂四捨五入,它只知道整型去掉小數點後的數字
6樓:
強制轉換是「取整」,不進行「四捨五入」,也就是取不大於被強制的資料的最大(絕對值)整數!
7樓:常玉標
c語言中,float 強制轉換為 int型 採用小數點後直接刪除,所以為3.
8樓:
他直接不要小數後面的,不是四捨五入!
c語言強制型別轉換問題
9樓:樂跑小子
強制型別
bai轉換的一般形式為:(類du型說明符)zhi(表示式),例如: (float) a 把a轉換為浮dao點型,版(int)(x+y) 把x+y的結果轉換為 整型強制類權型轉換是通過型別轉換運算來實現的。
功能是把表示式的運算結果強制轉換成型別說明符所表示的型別。
注意事項:①型別說明符和 表示式都必須加括號(單個 變數可以不加括號),如把(int)(x+y)寫成(int)x+y則成了把x轉換成int型之後再與y相加了。
②無論是 強制轉換或是自動轉換,都只是為了本次運算的需要而對 變數的資料長度進行的臨時性轉換,而不改變資料說明時對該 變數定義的型別。
10樓:匿名使用者
此時a的值是52,仍然是int型。
補:b的型別並沒有發生變化,同樣是int型,值也沒有改變。
11樓:123冰霜雪月
a是int型的
b是char型的
然後轉換
型別轉換就是(加上你要轉的型別)
有問題再問
12樓:匿名使用者
a是char型的,只有8位,謝謝。
13樓:納良銳卿雲
c語言bai的運算規律是(char、dushort)--->int------>unsigned------->long------->double<------float,
所以你第一第二個比較都zhi是轉換成unsignedint型計算,-3在計dao算機是版補碼形式存在,權大於100,更是大於3
第三第四十轉換成double,float型變數是把整數部分放在23到30位,轉換成double數當然很大,所以都比100大呀
C語言進位制轉換問題,C語言中各進位制的轉換問題
大數轉換成小數進位制時主要是求餘演算法,小數進位制轉換成大數進位制時要用n次方演算法。求餘後把數字儲存起來輸出就可以了。16進位制 0 0000 1 0001 2 0010 3 0011 4 0100 5 0101 6 0110 7 0111 8 1000 9 1001 a 1010 b 1011 ...
C語言中的問題,幾個C語言中的問題???
將憶梅僑寶 getchar和putchar是c語言中的函式 getchar從鍵盤讀入字元 putchar在螢幕上顯示字元 吳幼珊佘溶 getchar和putchar是c語言中的函式,叫作標準字元輸入輸出函式,這裡的標準表示輸入是從標準裝置輸入的,即鍵盤,輸出是從標準裝置輸出的,即顯示器。這兩個函式包...
c 語言問題?在c語言中的問題?
c 語言是c語言發展起來的,所以繼承了c語言幾乎所有的特點,但c 語言又有自己的個性。c語言是一種程序導向的程式語言,而c 主要是程序導向的,因此c 有類的概念,而c語言就沒有。c 的功能強大,編譯器複雜,適合高階程式的設計和,c語言的編譯器簡易,適合低端程式。邏輯混亂,參考正常的實現吧。c語言的基...