容量小的資料型別可以自動轉換為容量大的資料型別。容量指的是表數範圍,不是位元組數,比如long —> float 。
示例:
int i =3;
//4bytes
double d = i;
//8bytes <-- 4bytes
float f = i;
//4bytes <-- 4bytes, 可以轉,但可能會丟失精度
double d2 = f;
//8bytes <-- 4bytes
特例,對於byte,short,char,只要int型數字所在其對應表示範圍,即可進行自動資料轉換。
強制資料型別轉換
用於顯式的轉換乙個數值的型別,在有可能丟失資訊的情況下進行的轉換是通過強制型別轉換來完成的,可能會造成精度降低或溢位。
當將一種型別強制轉換成另一種型別,而又超出了目標型別的表示範圍,就會截斷成為乙個完全不同的無意義的值。
示例:
double x =
3.14
;int nx =
(int
)x;//nx = 3
型別提公升問題
兩種不同型別的資料進行數**算後,其結果的資料型別與容量大的資料對應的資料型別保持一致。
//型別提公升問題
int a =3;
long b =
4l;double d =
5.5;
int c =
(int
)(a + b)
;//a+b的結果為long型別,然後強轉為int型,再賦給int型變數
float f =
(float
)(a + d)
;
//溢位解決
int a =
100000000
;//1億
int b =
200;
long c =
(long
)a * b;
//先將a轉為long型,然後結果就是long型
13 資料型別轉換
1.parseint 遇到小數點,直接捨棄小數點後面的,不存在四捨五入 2.parsefloat 可以轉換小數 3.number 2.boolean 3.null 4.undefined 4.parseint 和parsefloat 2.如果字串是乙個空串或者是乙個全是空格的字串,結果是nan。2....
資料型別 型別轉換
這樣的語句將報錯,因為char型別精度低於int型別,編譯器無法將其自動轉換,只能進行強制轉換 int x 65 char ch char x 舉例1 int age 19 char 女 char result age int 不可以自動轉換成char 精度損失 舉例2 int a 10 int b...
Objective C資料型別 資料型別轉換
資料型別 1.objective c資料型別可以分為 基本資料型別 物件資料型別和id型別。2.基本資料型別有 int float double和char型別。3.物件型別就是類或協議所宣告的指標型別,例如 nsautoreleasepool pool 其中,nsautoreleasepool是乙個...