FLT_EVAL_METHOD
Определено в заголовочном файле <cfloat> | ||
|---|---|---|
#define FLT_EVAL_METHOD /* implementation-defined */ | (начиная с C++11) |
Задает точность, с которой выполняются все операции с плавающей точкой, кроме присваивания и преобразования типа.
| Значение | Пояснение |
|---|---|
отрицательные значения, кроме -1 | поведение определяется реализацией |
-1 | точность по умолчанию неизвестна |
0 | все операции и константы вычисляются в диапазоне и с точностью используемого типа. Кроме того, float_t и double_t эквивалентны соответственно float и double |
1 | все операции и константы вычисляются в диапазоне и с точностью типа double. Кроме того, и float_t, и double_t эквивалентны типу double |
2 | все операции и константы вычисляются в диапазоне и с точностью типа longdouble. Кроме того, и float_t, и double_t эквивалентны типу longdouble |
Примечания
Независимо от значения FLT_EVAL_METHOD, любое выражение с плавающей точкой может быть свернуто, то есть вычислено так, как если бы все промежуточные результаты имели бесконечный диапазон и точность (если только #pragma STDC FP_CONTRACT не отключен).
Преобразование типа и присваивание устраняют избыточный диапазон и точность: это моделирует сохранение значения из регистра FPU расширенной точности в ячейку памяти стандартного размера.
См. также
Документация по C для FLT_EVAL_METHOD |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/cpp/types/climits/FLT_EVAL_METHOD