Что больше, чем двойной? - PullRequest
       14

Что больше, чем двойной?

27 голосов
/ 02 ноября 2008

Есть ли собственный тип переменной c ++, который "больше", чем double?
Поплавок 7
double - 15 (конечно, в зависимости от компилятора)
Есть что-то большее, родное или даже не родное?

Ответы [ 8 ]

37 голосов
/ 02 ноября 2008

C ++ имеет long double, но нет гарантии, что он точнее простого double. На платформе x86 обычно double составляет 64 бита, а long double - 64 или 80 бит (что дает вам 19 значащих цифр, если я правильно помню).

Ваш пробег может отличаться, особенно если вы не на x86.

11 голосов
/ 03 ноября 2008

Длинный двойной тип обычно использует только 10 байтов, но из-за выравнивания может фактически занять 12 или 16 (в зависимости от компилятора и опций) байтов в структуре.

Двойной 10-байтовый код обеспечивает 64-битную мантиссу; это очень удобно, когда вы хотите хранить 64-битные целые числа с плавающей запятой без потери точности.

9 голосов
/ 03 ноября 2008

Вы можете использовать GNU MP . Его функции с плавающей точкой имеют неограниченную мантиссу и 32-битную или 64-битную (в зависимости от размера собственного слова) экспоненту. Он также поставляется с оболочкой C ++ .

3 голосов
/ 03 ноября 2008

C ++ имеет длинный дубль, но он все еще довольно ограничен. Для хорошего времени попробуйте библиотеку GNU gmp. Вы можете устанавливать числа настолько большими, насколько вам нравится, и это довольно забавно и весело, когда вы используете gmp_add вместо обычного +. Я уверен, что где-то есть оболочка C ++.

3 голосов
/ 03 ноября 2008

Есть также несколько различных библиотек bigfloat / bigint для C ++, которые допускают математические вычисления произвольной точности. В Microsoft Codeplex есть эта библиотека, но Googling найдет вам множество других.

2 голосов
/ 03 сентября 2010

long long double только некоторые процессоры позволят вам использовать его ...

2 голосов
/ 02 ноября 2008

long double, но, как правило, это тоже 15 точек точности.

0 голосов
/ 05 сентября 2013

Повышение 1,53 или выше имеет многократную точность.

http://www.boost.org/doc/libs/1_54_0/libs/multiprecision/doc/html/index.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...