jitianmoshen 发表于 2020-10-24 16:00:31

FLOAT类型的显示问题

#include <stdio.h>

int main(void)
{
    float boat = 32000.0;
    double abet = 2.14e9;
    long double dip = 5.32e-5;

    printf("%f 可以写成 %e\n",boat,boat);
    printf("它是十六进制的%a\n",boat);
    printf("%f 可以写成 %e\n",abet,abet);
    printf("%Lf 可以写成 %Le\n",dip,dip);

    return 0;
}

结果像下面:
32000.000000 可以写成 3.200000e+004
它是十六进制的0x1.f40000p+14
2140000000.000000 可以写成 2.140000e+009
0.000000 可以写成 3.172882e-317

不管dip的指数是正是负, 最后一行都是这样显示, 这是VSCODE的问题吗?

风过无痕1989 发表于 2020-10-24 16:33:05

具体什么情况不知道,我将我运行的结果截图给你看,你自己分析吧

jitianmoshen 发表于 2020-10-25 09:07:31

风过无痕1989 发表于 2020-10-24 16:33
具体什么情况不知道,我将我运行的结果截图给你看,你自己分析吧

第二个printf命令需要支持C99的编译器, 今天如果没人回答就选你做最佳了

5658362 发表于 2022-10-28 10:00:45

我也遇到了,楼主你在代码第一行加这个试试#define __USE_MINGW_ANSI_STDIO 1
页: [1]
查看完整版本: FLOAT类型的显示问题