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