#include <stdio.h>
#include <fenv.h>
#pragma STDC FENV_ACCESS ON
int main(void)
{
int roundMode = fegetround( );
volatile double d1;
volatile double d2;
volatile double result;
volatile int rounded;
fesetround(FE_TONEAREST);
d1 = 0.41;
d2 = 100;
result = d1 * d2;
rounded = result;
printf("nearest rounded=%i\n", rounded
);
fesetround(FE_TOWARDZERO);
d1 = 0.41;
d2 = 100;
result = d1 * d2;
rounded = result;
printf("zero rounded=%i\n", rounded
);
fesetround(roundMode);
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxmZW52Lmg+CiNwcmFnbWEgU1REQyBGRU5WX0FDQ0VTUyBPTgogCmludCBtYWluKHZvaWQpCnsKICAgIGludCByb3VuZE1vZGUgPSBmZWdldHJvdW5kKCApOwoKICAgIHZvbGF0aWxlIGRvdWJsZSBkMTsKICAgIHZvbGF0aWxlIGRvdWJsZSBkMjsKICAgIHZvbGF0aWxlIGRvdWJsZSByZXN1bHQ7CiAgICB2b2xhdGlsZSBpbnQgcm91bmRlZDsKCiAgICBmZXNldHJvdW5kKEZFX1RPTkVBUkVTVCk7CgogICAgZDEgPSAwLjQxOwogICAgZDIgPSAxMDA7CiAgICByZXN1bHQgPSBkMSAqIGQyOwogICAgcm91bmRlZCA9IHJlc3VsdDsKCiAgICBwcmludGYoIm5lYXJlc3Qgcm91bmRlZD0laVxuIiwgcm91bmRlZCk7CgogICAgZmVzZXRyb3VuZChGRV9UT1dBUkRaRVJPKTsKCiAgICBkMSA9IDAuNDE7CiAgICBkMiA9IDEwMDsKICAgIHJlc3VsdCA9IGQxICogZDI7CiAgICByb3VuZGVkID0gcmVzdWx0OwoKICAgIHByaW50ZigiemVybyByb3VuZGVkPSVpXG4iLCByb3VuZGVkKTsKCiAgICBmZXNldHJvdW5kKHJvdW5kTW9kZSk7CgogICAgcmV0dXJuIDA7Cn0=