ok, honestly this gets a little complex, and id also have to go check the code to be 100% accurate, but heres some basics
if you look at a parameter, you will see if has a type, this type can have a mapping, that may not start at zero, and may not be linear. they are also 'generic' i.e. an objects use might not necessarily be 'accurate' ... or as you say may 'round'
the particulars of the timer id have to check again, its been a while, and using -param into mtof means something very particular (which I cannot remember off the top of my head).
ok, I'm not sure what you mean by 'k-rate' samples, there are samples, and k-rate cycle, i.e. 16 samples are processing in one k-rate cycle. (which is why we have 3khz, 48000 sample rate/16=3k)
control 'messages' (e.g. k-rate parameters/inlets) are processed at k-rate, i.e. k-rate code is called 3000/sec, and immediately before s-rate code, which is called once per sample for that cycle.
so are using saying you want a 'tick' every N k-rate?
if so, why not use a simple counter object? set it to N, and it will carry, every N cycles.
if you really want to do every N samples, then you have to do this at 'audio rate' (or sample rate hence S-rate code), but to do this effectively, you will need to create an audio rate pulse, i.e. within a pulse in an audio buffer, since if you want to trigger after say 18 samples, this is 1 k-rate cycle + 2 samples.... doing at k-rate you would be either 2 samples early, or 14 samples late.
but... I'm guessing you want it at k-rate, so a counter is fine.
sorry, I'm not really sure what you trying to do, or achieve...