Perchè tu ragioni come se si trattasse dell'operatore Mod

20.5 Mod 3 = 2.5

ma non è così,
IEEERemainder esegue prima la divisione tra i 2 numeri

20.5 / 3 = 6,83

e arrotonda il risultato al numero intero + vicino

6,83 => 7

Poi calcola:

20.5 - (3 * 7) = -0,5