Language
C
Compiler
clang 17.0.1
Options
Warnings
C11(GNU)
no pedantic
Raw compiler options
-lm
#include <stdio.h>
#include <math.h>
#include <fenv.h>
int main(void) {
#if defined(FE_DOWNWARD)
puts("setting rounding mode to FE_DOWNWARD");
if (fesetround(FE_DOWNWARD)) return 1;
#elif defined(FE_TOWARDZERO)
puts("setting rounding mode to FE_TOWARDZERO");
if (fesetround(FE_TOWARDZERO)) return 1;
#else
#error appropriate rounding mode unavailable
#endif
double v = sqrt(4503599761588224.0);
long double vl = sqrtl(4503599761588224.0);
printf("%.40f %.20a\n", v, v);
printf("%.40Lf %.20La\n", vl, vl);
return 0;
}
$ clang prog.c -Wall -Wextra -std=gnu11 -lmsetting rounding mode to FE_DOWNWARD
67108864.9999999850988388061523437500000000000000 0x1.0000003ffffff0000000p+26
67108864.9999999925494194030761718750000000000000 0x8.000001ffffffc0000000p+23
Exit Code:
0