#include <stdio.h>
int main(){
double factor = nextafter(0x1.ffffffp-1 / 0xffffffffp0, 0.0);
unsigned int x = 0xffffffff;
float f = (float)((double)x * factor);
printf("factor:%a\nunrounded:%a\nresult:%a\n", factor
, (double)x
* factor
, f
); return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CgppbnQgbWFpbigpewogICAgZG91YmxlIGZhY3RvciA9IG5leHRhZnRlcigweDEuZmZmZmZmcC0xIC8gMHhmZmZmZmZmZnAwLCAwLjApOwogICAgdW5zaWduZWQgaW50IHggPSAweGZmZmZmZmZmOwogICAgZmxvYXQgZiA9IChmbG9hdCkoKGRvdWJsZSl4ICogZmFjdG9yKTsKICAgIHByaW50ZigiZmFjdG9yOiVhXG51bnJvdW5kZWQ6JWFcbnJlc3VsdDolYVxuIiwgZmFjdG9yLCAoZG91YmxlKXggKiBmYWN0b3IsIGYpOwpyZXR1cm4gMDsKfQ==