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_t and double_t are equivalent to float and double , respectively |
1 | both float_t and double_t are equivalent to double |
2 | both float_t and double_t are equivalent to long double |
other | both float_t and double_t are 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 double is used instead of float , 2: long double is 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