Вместо этого отобразите десятичный формат числа в виде экспоненты - PullRequest
0 голосов
/ 14 мая 2011

Я вычислил общее количество поплавков и получил число типа 509990e-405.Я предполагаю, что это короткая версия;как я могу cout это как полный номер?

   cout << NASATotal << endl;

это то, что у меня сейчас.

Ответы [ 2 ]

4 голосов
/ 14 мая 2011

Вы можете заставить вывод не быть в научной нотации и иметь достаточную точность, чтобы показать ваше небольшое число.

#include <iomanip>

// ...

long double d = 509990e-405L;
std::cout << std::fixed << std::setprecision(410) << d << std::endl;

Выход:

0.00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000050999000000

Если вы действительно хотите , это другой вопрос.

1 голос
/ 14 мая 2011

Вы можете написать свой собственный класс BigNumber, который сохраняет результаты в виде строк. Вам придется реализовать все ваши числовые операции, и я предполагаю, что производительность будет проблемой. Но это можно сделать без проблем - при условии, что это то, что вы хотите.

...