1

我想返回+INF,但我只返回“inf”:

int main(void)
{
    double dubb = HUGE_VAL;
    printf("%f \n", dubb);
}

我在这里忽略了什么吗?或者它只是编译器语义?

4

2 回答 2

3

printf("%+F\n", dubb);改为使用

'+' 使 printf 显示符号 'F' 使 inf/nan 大写

于 2013-01-21T08:25:01.433 回答
1

你没有告诉我们你有什么 C 库。我在 linux 上的手册页告诉我:

C99 标准为无穷大指定“[-]inf”或“[-]infinity”,在 f 转换的情况下为 NaN 指定以“nan”开头的字符串,以及“[-]INF”或“[ -]INFINITY" 或 "NAN*" 在 F 转换的情况下。

所以你观察到的似乎与 C99 标准同步。使用“%F”将其全部大写,因为+只需将其放在前面。

于 2013-01-21T08:26:20.373 回答