| Defined in header <math.h> | ||
|---|---|---|
| typedef /*implementation defined*/ float_t | (since C99) | |
| typedef /*implementation defined*/ double_t | (since C99) | 
The types float_t and double_t are floating types at least as wide as float and double, respectively, and such that double_t is at least as wide as float_t. The value of FLT_EVAL_METHOD determines the types of float_t and double_t.
| FLT_EVAL_METHOD | Explanation | 
|---|---|
| 0 | float_tanddouble_tare equivalent tofloatanddouble, respectively | 
| 1 | both float_tanddouble_tare equivalent todouble | 
| 2 | both float_tanddouble_tare equivalent tolong double | 
| other | both float_tanddouble_tare implementation defined | 
#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;
}Possible output:
0 4 4 8 8
| (C99) | use of extended precision for intermediate results: 0 not used, 1 doubleis used instead offloat, 2:long doubleis used(macro constant) | 
    © cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
    https://en.cppreference.com/w/c/numeric/math/float_t