Для почти всех применений, встроенных типов плавающих точек,двойной(идлинныйдвойной)., если это обеспечивает более высокую точность, чем, двойная, обеспечивает достаточную точность, как правило, дюжина десятичных знаков.
Некоторые причины, по которым вы хотите использовать более высокую точность:
- Гораздо более точный результат (многие цифры) является просто требованием.
 
- Диапазон вычисленного значения превышает диапазон типа: факториалы — пример учебника.
 
двойнойявляется (или может быть) слишком неточной. 
[или может быть] слишком неточно. 
- Использование типа расширенной точности, реализованного в программном обеспечении какдвойнойДарвин, иногда непредсказуемо неточно.
 
- Потеря точности или неточности, вызванная крайними аргументами или ошибкой отмены.
 
- Требуется максимальная точность для выбранного типа плавающей точки.
 
- В качестве эталонного значения, например, для определения неточности значения, вычисляемого со встроенным типом с плавающей точкой (возможно, даже с использованием какого-то быстрого «грязного» алгоритма). Точность многих функций и распределений в Boost. Математика была измерена таким образом из таблиц с очень высокой точностью (до 1000 десятичных знаков).
 
 
Многие функции и распределения имеют отличия от точных значений, которые представляют собой лишь несколько наименее значимых битов — шума вычислений. Другие, часто те, для которых аналитические решения недоступны, требуют приближений и итерации: они могут потерять несколько десятичных цифр точности.
Гораздо большая потеря точности может произойти дляпограничныхилиугловых случаев, часто вызванныхошибками отмены.
(Некоторые из наихудших и наиболее распространенных примеровошибки отмены или потери значимостиможно избежать, используядополнения: см.Почему дополнения?.
Если вам требуется значение, которое является столь же точным, как может быть представлено в типе с плавающей точкой, и, таким образом, является самым близким представляемым значением и имеет погрешность менее 1/2 aнаименее значимый битилиulp, может быть полезно использовать тип с более высокой точностью, например,cpp_dec_float_50, для генерации этого значения. Преобразование этого значения во встроенный тип с плавающей запятой ('плавающий',двойнойилидлинныйдвойной) не приведет к дальнейшей потере точности. Десятичная строка также будет «читаться» точно компилятором во встроенный тип с плавающей точкой до ближайшего репрезентабельного значения.
![[Note]](/img/note.png)  | 
Note | 
В отличие от этого, чтение значения изstd:istreamво встроенный тип с плавающей точкойне гарантируется C++ Стандартдля получения ближайшего репрезентативного значения.  | 
 
Уильям Кахан ввел терминДилемма Таблицыдля проблемы правильного округления функций. Использование гораздо более высокой точности (50 или 100 десятичных знаков) является практическим способом генерации (почти всегда) правильно округленных значений.