Yeah, the rounding is very inconsistent. Some will display 11.7% as 11%, others will round it up to 12%.
It's a bug, but I quite like it as it makes it easier to see where you are within the %.
Actually it's not inconsistent, it's a bug: they are using the wrong kind of rounding function sometimes.
There are more than one type of rounding functions (functions that convert floating point numbers into integers):
1. Round() - returns the nearest integer
2. Int() - simply returns the integer part of the number, so 1.897 becomes 1, for instance
3. Floor() - rounds always downwards (on positive numbers it works the same way as the Int() function, but on negative numbers it rounds "away from" zero)
4. Ceiling() - the opposite of the previous one, it always rounds upwards, e.g. 99.1 becomes 100 and 0.1 becomes 1.
Choosing the wrong rounding function is extremely annoying when the hull percentage of your opponent is being displayed, for instance. Currently the game is using a simple Round() function here, this is how they can become zombies flying around on 0% hull (actually it's something like 0.251). They should have used the Ceiling() function here.
And there is literally zero reason why they couldn't find some dev time to fix it in 5 years: it's a single line of code kind of thing which shouldn't have taken more that 1 minute to fix.