Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share
menu search
person
Welcome To Ask or Share your Answers For Others

Categories

I'm printing a variable using cout in Visual C++ 2010 and it shows "1.$". What does it mean?

Google does not allow searches with $ so I couldn't find the meaning.

EDIT:

The code is like this:

double func(...);

std::cout << func(...);

I haven't modified cout's defaults

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
381 views
Welcome To Ask or Share your Answers For Others

1 Answer

Its an infinite value with the precision set small:

#include <iostream>
#include <limits>
int main()
{
    std::cout << std::numeric_limits<double>::infinity() << "
";
    std::cout << std::numeric_limits<double>::quiet_NaN()() << "
";

    std::cout << std::setprecision(2) << std::numeric_limits<double>::infinity() << "
";
    std::cout << std::setprecision(2) << std::numeric_limits<double>::quiet_NaN() << "
";
}

This should print:

1.#INF
1.#QNAN
1.$
1.$

Edit:

From @ZoogieZork in the comments below (who pointed out that it was a precision problem).
This is directly related to this: What does floating point error -1.#J mean?


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share
...