I'm currently investigating a bug in our system which is related to rounding errors. I just discovered that Math.floor() produces different results when using an operation as argument - e.g.:
Math.floor(1681); // produces 1681
Math.floor(16.81 * 100) // produces 1680
Math.floor(16.811 * 100) // produces 1681
Can anyone explain why? This is hurting my brain.