I have learned from wikipedia that a double number has at most 15-17 significant decimal digits
However, for the simple C++ program below
double x = std::pow(10,-16);
std::cout<<"x="<<std::setprecision(100000)<<x<<std::endl;
(To test it, use this online shell ), I get
x=9.999999999999999790977867240346035618411149408467364363417573258630000054836273193359375e-17
which has 88 significant decimal digits, which, apparently, contradicts with the aforementioned claim from Wiki. Can anyone clarify should I misunderstand something? Thanks.