In math, |-3.99| = 3.99 (|x| is an absolute value).
If you meant [-3.99] = -4 then yes you are correct, that would be -4. However, in programming, the int() function doesn't do this. It returns the "integer part" of the number. I think this is correct because mIRC does this with many identifiers. One example, $log. In math log() is base 10 and ln() is base e. In mIRC $log is base e. Again, in programming this is how it is, in C for example log() is base e and log10() is base 10. Seeing as how everywhere else mIRC follows the "programming" definition of the function, I think the way mIRC handles $int is correct.

IMHO the easiest way for this to be solved would be by adding $floor and $ceil to mIRC.