尝试printf" + INF"但只能得到" inf"

时间:2013-01-21 08:16:05

标签: c variables format printf

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

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

我在这里俯瞰什么吗?或者它只是编译器语义?

2 个答案:

答案 0 :(得分:3)

使用printf("%+F\n", dubb);代替

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

答案 1 :(得分:1)

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

  

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

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