Fixes tag propagation errors due to double-to-int truncation

For small rrate values the inaccuracies of floating point math can lead to off-by-one errors for tag propagation. Adding 0.5 is akin to rounding to the nearest sample value, which should lead to more accurate tag placement.

For example, if you multiply 6120 and 1/6120 you may end up with 0.999999..., which C will truncate to 0 when converting to an int. The preferred value would be 1.