Java 資料型別轉換

2021-08-13 05:35:49 字數 1463 閱讀 9189

自動型別轉換

自動型別轉換:容量小的資料型別可以自動轉換為容量大的資料型別。

int i=3;

double d=i;

float f=i;

double d2=f;

在圖中,黑色的實線表示無資料丟失的自動型別轉換,而紅色的虛線表示在轉換時可能會精度的損失。

boolean  8bit/1byte

byte      8bit/1byte

char      16bit/2byte

short     16bit/2byte

float      32bit/4byte

int        32bit/4byte

long      64bit/8byte

double  64bit/8byte

特例

可以將整型常量直接賦值給byte,short,char等型別變數,而不需要進行強制型別轉換,只要不超出其表示範圍

short b=12;//合法

short b=1234567;//非法

強制型別轉換

強制型別轉換又被稱為造型,用於顯示的轉換乙個數值的型別,在有可能丟失資訊的情況下進行的轉換是通過造型來完成的,但可能造成精度降低或溢位。

double x=3.14;

int a1=(int)x;

print輸出:3

當將一種型別強制轉換成另一種型別,而又超出了目標型別的表示範圍,就會被截斷成為乙個完全不同的值,無意義的值

int x2=-100;

char a2=(char)x2;

print輸出:?

表示式中的型別提公升問題

int a=4;

long b=5;

int c=a+b;//這時a+b的值是long型別

int c=(int)(a+b);

所有的二元運算子(+-*/%)都會有型別提公升的問題!超型別時需要強制轉型。

long型別強轉使用大寫l並且運算時盡量寫在第乙個值的後面例如:long times=70l*60*24*365*70;//會先提公升資料型別

int money=1000000000;//10億

int years=20;

long total=(long)(money*years);//錯誤。因為money*years已經運算完,在提成long輸出的結果和沒有long的數值是一樣的

long total=(long)money*years;//正確。先提公升後計算

Java資料型別轉換

1字串to整型 string num 111 int integer.parseint num 確保num 只有數字字元 1.1byte and string publicclasstestmain publicstaticbytestring2byte string input byte2stri...

java資料型別轉換

資料型別由低階到高階依次為 byte,short,char int long float double 型別轉換由低階到高階可以自動轉換,比如byte b long l b 如果低階為char,轉換為高階時轉化資料是相應的ascii碼。byte,short,char是同一級別的,不能自動相互轉換,如...

Java資料型別轉換

資料樂行的轉換,分為自動轉換和強制型別轉換。自動轉換時程式在執行過程中 悄然 進行的轉換,不需要使用者提前宣告,一般是從位數低的型別向位數高的型別轉換 強制型別轉換則必須在 中宣告,轉換順序不受限制。自動轉換按從低到高的順序轉換。不同型別資料間的優先關係如下 低 高 byte,short,char ...