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 have the following piece of code written in c++ and compiled by g++ 4.8.

double x = 0.123456789;
cout << x << endl;

I don't understand why I only get the output

0.1234567

even I define x as long double x. It probably a quite naive question, but can any one give me some hits?

See Question&Answers more detail:os

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

1 Answer

This page has all you need, namely that you should use the std::setprecision stream manipulator.

double x = 0.123456789;
std::cout << std::setprecision(10) << x << std::endl;

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