Hm,
you could add minimum- and maximumFractionDigits like this:
compacter = Intl.NumberFormat('en-us', { notation: "compact", maximumFractionDigits: 3});
num = thisComp.layer("NUMBER CONTROLLER").effect("Point Control")("Point").value[0];
compacter.format(num);
which would give you 999.999K
But it is indeed always a true “round”, not a floor.
-> 999,998.8 will also be 999.999K
Which to me makes perfect sense and wouldn’t be a problem in most animations settings.
But there’s always the option you have, problem is that you hjave to rewrite that expression every time the numbers gain 3 orders.
Alternatively, compacter.formatToParts(num) would give an array of the individual parts ‘integer, decimal, fraction,compact) so you could use that to have javascript give you the ocrrect abbreviation K,M, B… and do your own rounding