rintf(2097152.75) returns 2097152, which is wrong. It should be 2097153.
2097152.75 = 0x1.000006p+21 = 0b1000000000000000000000.11, which after rounding
should be 0b1000000000000000000001, which is 0x1.000008p+21 = 2097153
The behavior is shown by the __rintf function "ripped" from the glibc-20090420
snapshot.