On 06/12/2016 12:39, Vincent Lefevre wrote: > So, in C, long double = x86 extended precision (80 bits + padding). That statement is incorrect. > [C99] 6.2.5 Types > 10) There are three real floating types, designated as float, double, > and long double. The set of values of the type float is a subset of > the set of values of the type double; the set of values of the type > double is a subset of the set of values of the type long double. More specifically, [C99] 5.2.4.2.2 Characteristics of floating types <float.h> Smallest valid values for DBL_DIG = LDBL_DIG = 10 DBL_MAX = LDBL_MAX = 1E+37 DBL_EPSILON = LDBL_EPSILON = 1E-9 In other words, the C standard allows "long double" to be strictly equivalent to "double". (I don't think that changed in C11.) Regards.