Namespaces
Variants

FLT_EVAL_METHOD

From cppreference.net
Utilities library
定义于头文件 <cfloat>
#define FLT_EVAL_METHOD /* 由实现定义 */
(C++11 起)

指定除赋值和强制类型转换外的所有浮点算术运算的精度。

数值 说明
- 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寄存器存储到标准大小内存位置的操作。

参见

C 文档 关于 FLT_EVAL_METHOD