# Casting
先定一些變數以供下範例使用
```
byte b = 1;
char c = 2;
short s = 3;
int i = 4;
long l = 5;
float f = 6;
double d = 7;
```
## Implicit Casting
能直接轉的, 像是
```java
long l = i;
float f = i;
```
## Explicit Casting
要顯示轉型, 因為你可能會失去一些數值, 像是
```java
int i = (int) l;
```
## 轉為浮點數
整數都可以隱式轉為浮點數
float可以隱式轉為double
```java
double d = f;
```
double要顯式轉為float
```java
float f = (float) d;
```
## 轉為整數
浮點數都要顯式轉為整數
```java
long i = (long) d;
```
如果是一個較大的型別要轉為較小的型別, 需要顯式轉換
```java
int i = (int) l;
```