FLT_EVAL_METHOD
Определено в заголовочном файле <float.h> | ||
|---|---|---|
#define FLT_EVAL_METHOD /* implementation-defined */ | (начиная с C99) |
Задает диапазон и точность значений с плавающей точкой, полученных из констант с плавающей точкой и всех операций (операторов, неявных преобразований операндов), за исключением присваивания, приведения типа и вызова библиотечной функции.
| Значение | Пояснение |
|---|---|
отрицательные значения, кроме -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 расширенной точности в ячейку памяти стандартного размера.
См. также
|
(C99) | наиболее эффективный тип с плавающей точкой, ширина которого не меньше ширины типа float (определение типа) |
|
(C99) | наиболее эффективный тип с плавающей точкой, ширина которого не меньше ширины типа double (определение типа) |
Документация по C++ для FLT_EVAL_METHOD |
|
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/c/types/limits/FLT_EVAL_METHOD