Как да отпечатате дълго двойно (пълна дължина) C++

Имам дълго двойно и искам да отпечатам всички цифри от него (пълното число без научна нотация), използвайки cout.

Ето кода: -

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

изход:-

Num: 3.45649e+015

Докато искам изходът да бъде

Num: 3456489465498484.14159265358979;

Опитах прецизност и задаване на прецизност, но изглежда не работи по този начин. Моля помогнете


person UmeRonaldo    schedule 18.06.2013    source източник
comment
cplusplus.com/reference/ios/scientific и cplusplus.com/reference/iomanip трябва да помогне. Можете да зададете точността за показване на десетичните знаци.   -  person Charles Addis    schedule 18.06.2013


Отговори (1)


Вътрешното представяне на стойност с плаваща запетая обикновено е двоично, така че инициализирането му изисква преобразуване от десетичен в двоичен, а показването му изисква преобразуване от двоичен в десетичен. Повечето десетични дроби нямат точно двоично представяне и повечето двоични дроби нямат точно десетично представяне, така че по принцип няма смисъл да се искат "всички" цифри. Загубили сте някои цифри на влизане и ще загубите още на излизане. Решете колко искате и задайте точността да съответства.

person Pete Becker    schedule 18.06.2013