2011-05-13 5 views
0

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

cout << NASATotal << endl; 

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

+2

Вы хотите видеть 400 нулей в вашем выходе? –

+0

Ну, я сделал преувеличение, но да, я просто хочу знать, как получить общий выход. – mystycs

+2

Хотя я не знаю, какие вы сделали или какие данные вы сделали, я подозреваю, что этот номер является неправильным или, по крайней мере, совершенно бесполезным результатом. Как написала чистая cuteness, это число с 400 нулями после десятичной точки. –

ответ

4

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

#include <iomanip> 

// ... 

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

Выход:

0,00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000050999000000

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

+0

@Christian: да, уже отредактировано, что в. – sth

1

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

+0

Soo я должен сделать его в строку? – mystycs

+0

Нет, я думал вместо использования int или float, используйте свой класс BigNumber, который вы будете реализовывать :-) (что-то вроде этого: http://www.dreamincode.net/forums/topic/27746-big-number- class /) –