The precision argument isn't always honored if the resulting string ends in zeroes. There should be some kind of "padding" or "strict precision" argument so that the number is padded with trailing zeroes in the result. This would allow for right-aligned text (e.g. in tables) to always line up correctly.