2013-06-18 2 views
1

У меня длинный двойной, и я хочу напечатать все его цифры (полное число без научной нотации), используя cout.Как напечатать длинный двойной (полная длина) C++

Вот код: -

long double d = 3456489465498484.14159265358979; 
cout << "Num: " << d << endl; 

выход: -

Num: 3.45649e+015 

В то время как я хочу выходной быть

Num: 3456489465498484.14159265358979; 

Я попытался точность и установить точность, но не кажется работать таким образом. пожалуйста, помогите

+0

http://www.cplusplus.com/reference/ios/scientific/ и http://www.cplusplus.com/reference/iomanip/ должно помочь. Вы можете установить точность отображения десятичных знаков. –

ответ

0

Внутреннее представление значения с плавающей запятой, как правило, является двоичным, поэтому для его инициализации требуется преобразование из десятичной в двоичный, и для его отображения требуется преобразование из двоичного в десятичное. Большинство десятичных дробей не имеют точного двоичного представления, и большинство двоичных дробей не имеют точного десятичного представления, поэтому вообще не имеет смысла запрашивать «все» цифры. Вы потеряли некоторые цифры на пути, и потеряете еще немного на пути. Решите, сколько вы хотите, и установите точность для соответствия.

Смежные вопросы