If you want to display all digits of your double (instead of going into scientific notation), you have to change your output stream's float formatting to std::fixed:
double d = 1000000000000000.0; // 10^16
std::cout << std::fixed << d;
Output:
1000000000000000.000000
If you want your display to go into scientific notation at a custom exponent, you'll have to do that yourself using the existing tools.