FLT_EVAL_METHOD
|
Определено в заголовочном файле
<float.h>
|
||
|
#define FLT_EVAL_METHOD /* определяется реализацией */
|
(начиная с C99) | |
Определяет диапазон и точность значений с плавающей запятой, полученных из констант с плавающей запятой и из всех операций (операторы, неявные преобразования операндов), за исключением присваивания, приведения типов и вызова библиотечных функций.
| Значение | Объяснение |
| отрицательные значения кроме - 1 | поведение, определяемое реализацией |
| - 1 | точность по умолчанию неизвестна |
| 0 | все операции и константы вычисляются в диапазоне и точности используемого типа. Дополнительно, float_t и double_t эквивалентны float и double соответственно |
| 1 | все операции и константы вычисляются в диапазоне и точности double . Дополнительно, оба float_t и double_t эквивалентны double |
| 2 | все операции и константы вычисляются в диапазоне и точности long double . Дополнительно, оба float_t и double_t эквивалентны long double |
Примечания
Независимо от значения FLT_EVAL_METHOD , любое выражение с плавающей точкой может быть сконтрактовано , то есть вычислено так, как если бы все промежуточные результаты имели бесконечный диапазон и точность (если только #pragma STDC FP_CONTRACT не отключена).
Приведение и присваивание удаляют любой избыточный диапазон и точность: это моделирует действие сохранения значения из регистра FPU с расширенной точностью в стандартную ячейку памяти.
Смотрите также
|
(C99)
|
наиболее эффективный тип с плавающей точкой, по меньшей мере такой же ширины, как
float
(typedef) |
|
(C99)
|
наиболее эффективный тип с плавающей точкой, по меньшей мере такой же ширины, как
double
(typedef) |
|
C++ documentation
для
FLT_EVAL_METHOD
|
|