C語言資料型別的強制轉換
阿新 • • 發佈:2019-02-10
這次主要是基本資料型別的轉換;
為什麼會有資料型別的轉換呢?
主要是由於在不同的情況下我們對於數值精度的要求不同,導致我們必須對一些資料進行處理。
資料型別的轉換分為強制轉換和隱式轉換兩種
強制轉換:當變數的取值範圍從大變小時
轉換格式:另一變數名=(要轉換到的型別)變數名;例如:int i=0; flaot j=10.123456; i=(int)j; 這時浮點型變數 j 的值已經變為整型並付給變數 i 。
隱式轉換:當變數的取值範圍從小變大時,自動轉換,不用強制,例如:int i=0,float j=1.2345; j=i;
程式碼如下:
int main(void)
{
int i = 2;
float j = 10.123456;
float temp=0;
//(float)i = (float)i;
printf("int_change_before:");
printf("%f\n", i);
printf("int_change_after:");
temp = (float)i;
printf("%f\n",temp);
printf("float_change_before:");
printf("%f\n", j);
printf("flaot_change_after:");
temp = (int)j;
printf("%d\n", (int)temp);
return 0;
}
輸出結果:
int_change_before:2
int_change_after:2.00000
float_change_before:10.123456
float_change_after:10
總結:強制轉換可以幫助我們獲取需要的取值,但是丟失了數的精度,具體按情況而定。