It appears the mistake is in how the function calculates the fractional part of the number supplied, and that the same mistake also applies to the FixedFloor, Ceil and Trunc functions.
It's quite obvious how little we've used these functions ourselves I take it.