Namespaces
Variants

FLT_EVAL_METHOD

From cppreference.net
< c ‎ | types ‎ | limits
定义于头文件 <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 所有运算和常量在 long double 类型的范围和精度内求值。此外, float_t double_t 均等价于 long double

注释

无论 FLT_EVAL_METHOD 的值如何,任何浮点表达式都可能被 收缩 ,即计算时如同所有中间结果具有无限范围和精度(除非 #pragma STDC FP_CONTRACT 处于关闭状态)。

强制转换和赋值会去除任何额外的范围和精度:这模拟了将值从扩展精度FPU寄存器存储到标准大小内存位置的操作。

参见

(C99)
最高效的浮点类型,宽度至少与 float 相同
(typedef)
最高效的浮点类型,宽度至少与 double 相同
(typedef)
C++ documentation for FLT_EVAL_METHOD