【问题标题】:Printing floating point using integer type specifier [duplicate]使用整数类型说明符打印浮点数
【发布时间】:2016-02-23 15:42:02
【问题描述】:

我有以下 C 代码。

int main (void)
{
    printf("%d\n",5/(float)4.7);
    printf("Size of int = %d",sizeof(int));
    return(1);
}

但是结果是1610612736 我期望结果为 1,因为我们要打印一个整数。为什么会这样?浮点值如何在 printf 语句中转换为较大的值? 我正在使用代码块 + mingw

【问题讨论】:

标签: c


【解决方案1】:

当您尝试打印一个整数时,您必须将结果转换为int

printf("%d\n",(int)(5/(float)4.7));

否则5/(float)4.7float

您会看到1610612736,因为float 的值是“解释”,而int 会导致奇怪的结果。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-06-10
    • 1970-01-01
    • 2021-08-26
    • 2018-07-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多