Это ориентировано на многопотоковое исполнение; printf должен быть повторно используем, и Вы не вызовете странности или повреждения в Вашей программе.
Вы не можете гарантировать, что Ваш вывод от одного потока не запустит половину пути через вывод от другого потока. Если Вы заботитесь об этом, необходимо разработать собственный заблокированный выходной код для предотвращения множественного доступа.
Используйте setprecision ()
манипулятор:
http://www.cplusplus.com/reference/iostream/manipulators/setprecision/
Вы также можете принудительно ввести научную нотацию с помощью научного
манипулятора:
http: / /www.cplusplus.com/reference/iostream/manipulators/scientific/[1228 visible
вы можете использовать что-то вроде этого:
#include <iomanip>
cout << setprecision (9) << double_value << endl;
другие манипуляторы, здесь
Вы ищете setprecision
(код взят из ссылки):
int main () {
double f =3.14159;
cout << setprecision(15) << f << endl;
return 0;
}