簡體   English   中英

在C中將int轉換為float

[英]Converting an int to a float in C

我在將int轉換為float遇到麻煩。 我嘗試輸入convert,但似乎無法正常工作。 我究竟做錯了什么?

float *six(const int *x) {
    float *p = malloc(sizeof(x));
    p = (float *)x;
    return p;
}

int main() {
    float *p_six;
    int i4 = 4, i432 = 432;

    p_six = six(&i4);
    printf("%d == %f\n", i4, *p_six);
    free(p_six);
}

您不能將float *指向int並期望它能正確解釋。 它們具有非常不同的表示形式,因此您最終將得到垃圾。

您需要做的就是將您的int值分配給一個float ,它將被轉換。

int main()
{
    float f;
    int i = 4;

    f = i;
    printf("%d == %f\n", i, f);
    return 0;
}

輸出:

4 == 4.000000

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM