# C語言教學10 - 型別轉換 ## 撰寫於2018年9月 [現代C語言小心得](https://hackmd.io/s/HJPpJjvw7) ## 隱性轉型 整數和整數間,浮點數和浮點數之間,都可以直接轉換型態,但是會有精度以容量的問題。 ```C= int main() { long int l = 20L; int i = 3; float f = 3.2f; double d = 5.4; l = i; // (O) i = l; // (O) f = d; // (O) d = f; // (O) } ``` 浮點數和整數之間也可以隱性轉型。 ```C= int main() { long int l = 20L; int i = 3; float f = 3.2f; double d = 5.4; l = f; // (O) 會無條件捨去 i = d; // (O) 會無條件捨去 f = i; // (O) d = l; // (O) } ``` ## 強制轉型 Casting 假如對隱性轉型方式不滿意,或是不同型別無法隱性轉型時,可以使用強制轉型。 用法: (型別)東西 ```C= int main() { long int l = 20L; int i = 3; float f = 3.2f; double d = 5.4; printf("%d, %f, %ld", (int)d, (float)i, (long int)f); } ```