IMHO.WS

IMHO.WS (https://www.imho.ws/index.php)
-   Программирование (https://www.imho.ws/forumdisplay.php?f=40)
-   -   Число знаков после запятой в С++ (https://www.imho.ws/showthread.php?t=104398)

ЛеднеFF 02.06.2006 09:43

Число знаков после запятой в С++
 
в консольной программе в переменной - double р; отображается только 14 знаков после запятой:
cout<<setprecision(30)<<p<<endl;

хотя задано 30

Как отобразить больше 14 знаков после запятой и возможно ли это?
И вообще сколько знаков после запятой у данной переменной может быть?

MrSerg 02.06.2006 10:33

double
Значащие знаки 15-16
Занимает памяти 8 байт памяти

long double
Значащие знаки 19-20
Занимает памяти 10 байт памяти

Для прикола, недостающие 15 знаков можно заполнить случайными цифрами :) .
Будет выглядеть круто.

gandalf_g 02.06.2006 10:37

Цитата:

MrSerg:
long double
Значащие знаки 19-20
Занимает памяти 10 байт памяти
кстати так не везде, в MSDN сказано что long double same as double

ЛеднеFF 02.06.2006 10:43

один хрен что long, что ни long отображается 14 знаков после запятой

BorLase 02.06.2006 10:52

насколько мне помнится, в С/С++ подобные вещи отданы на усмотрение разработчиков компилятора - так что может быть и 10 байт с 20 знаками, и 100 байт с 2000 знаками :)

надо смотреть в каждом случае конкретный компилятор/платформу

ЛеднеFF 02.06.2006 15:26

а как допустим число Пи считать до хрен знает какого знака......

Kvarx 02.06.2006 15:51

Ну как, если ручками, то лучше всего воспользоваться методом Ньютона.
А чтобы реализовать в проге, придется из интов составить длинное число(массив), к которому ты будешь специфически обращаться, а потом интерпретировать, как вещественное число.

MrSerg 02.06.2006 17:02

Самый (простой) алгоритм вычисления PI

PI = 4 - (4/3) + (4/5) – (4/7) + (4/9) – (4/11) + (4/13) – (4/15) +..- ..

Если сложить 1000000 значений этой последовательности можно получить 5 знаков после запятой .
Дальше хуже новые знаки растут плохо.


Существуют библиотеки 128-разрядных чисел 31-знак;
Поищите в инете:
128-разрядные числа двойной точности
числа с динамически изменяемой мантиссой числа


Часовой пояс GMT +4, время: 01:40.

Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.