为什么 float 会变成 NaN

问题描述 投票:0回答:1
#include <stdio.h>

int main()
{
    int i = 2, j = 4;
    float b;
    
    b = j / i * i;
    
    printf("%f\n", j / i * i);
    printf("%f\n", b);
    return 0;
}

输出是

-1.#QNAN0
4.000000

这段代码

#include <stdio.h>

int main()
{
    int i = 2, j = 4;
    float b;
    
    b = j / i * i;
    
    printf("%f\n", b);
    printf("%f\n", j / i * i);
    return 0;
}

提供输出

4.000000
4.000000

为什么会这样

我尝试在 vs code 中运行它,但结果并不符合预期。

c floating-point type-conversion
1个回答
0
投票
  • 启用所有编译器警告。

  • 将打印说明符与参数类型相匹配。

    "%f"
    期待
    float/double
    。由于
    i, j
    int
    ,所以
    j / i * i
    也是一个 into。

© www.soinside.com 2019 - 2024. All rights reserved.