What i am concerned is if this happens only at Serial.print.

No, it will happen with all code when you make a human readable presentation. As stated above the Arduino double is implemented as a float which is an IEEE&54 implementation of a floating point number.

IIRC This representation has 23 bits for the mantissa and 8 bits for the exponent (power of 2) and 1 sign bit. With 23 bits it is possible to have max 7.2 digits precision in decimal notation. The fact that this is a float number itself means that in practice you have between 6 and 7 digits right.

Printing a floating point implicit means rounding it to the nearest number to keep the rounding error less than half the last digit. Printing more digits means that you do the rounding on another level , until you have more than 7 digits, then you are in fact just rounding noise.

So far I have not seen a proper 8 byte double implementation for the Arduino, but there is a big-number library (ported by Nick Gammon, search the forum) that has arbitrary precision and works very well unless you are in the need for speed.

Finally working with floats introduces rounding errors in your math. That is the nature of the float type and although you can keep it as minimal as possible the error will grow. That means results can differ quite a bit, depending on your implementation of a certain algorithm.