Я хочу напечатать двойное значение до std::cout
portably (GCC, clang, MSVС++), так что вывод будет одинаковым на всех платформах.
У меня проблема с форматированием экспоненты. Следующая программа
#include <iostream>
int main()
{
std::cout << 0.1e-7 << std::endl;
return 0;
}
Имеет этот вывод с GCC:
1e-08
и следующий вывод с MSVC
1e-008
Как я могу сделать оба выхода одинаковыми?
Извините, если это глупый вопрос, но пока я не нашел ответа. Кажется, что все форматирование развивается вокруг форматирования всего до мантиссы...
EDIT: вывод GCC 1e-08
not 1e-8
(как изначально указано), поэтому он соответствует. Извините за путаницу.
EDIT2: Фактически переименовали "мантисса" в "экспоненту" после комментария Дитмара. Также есть раздел о Википедии о мантиссе против значительного.