# float_t, double_t

< c‎ | numeric‎ | math

定义于头文件 `<math.h>` |  |
typedef /*implementation defined*/ float_t |  | (C99 起)
typedef /*implementation defined*/ double_t |  | (C99 起)

float_t 和 double_t 类型分别是至少与 float 和 double 一样宽的浮点类型，并满足 double_t 至少与 float_t 一样宽。 FLT_EVAL_METHOD 的值确定 float_t 和 double_t 的类型。

FLT_EVAL_METHOD | 解释
`0` | float_t 和 double_t 分别等价于 float 和 double
`1` | float_t 和 double_t 都等价于 double
`2` | float_t 和 double_t 都等价于 long double
其他 | float_t 和 double_t 均为实现定义

### 示例

    #include <float.h>
    #include <math.h>
    #include <stdio.h>

    int main(void)
    {
        printf("%d\n", FLT_EVAL_METHOD);
        printf("%zu  %zu\n", sizeof(float),sizeof(float_t));
        printf("%zu  %zu\n", sizeof(double),sizeof(double_t));
        return 0;
    }

可能的输出：

    0
    4  4
    8  8

### 引用

- C11 标准（ISO/IEC 9899:2011）：

  - 7.12 Mathematics <math.h> (p: 231)

- C99 标准（ISO/IEC 9899:1999）：

  - 7.12 Mathematics <math.h> (p: 212)