Updated with more details
NumberForm acts on an extended precision number, e.g.,
NumberForm[number, prec], the number of digits to be shown depends on both the precision of
number and the
prec.That is, if the precision of the number is
x, and the goal is
y, than the precision to be shown will be smaller of
y. Here is an example:
Even though two digits of precision were requested, only one digit of precision is given in the output. Obviously, when the precision of the number is an integer, say 1, it lies on the edge of being able to show 0 or 1 digits. For some reason,
NumberForm decides that a precision of 1 is not quite sufficient to show even 1 digits, and so you get:
If you increase the precision of the number by just a little bit, then
NumberForm is able to determine that one digit of precision can be shown:
So, I would add a bit of slop to the precision of the number so that it is far enough away from an integer.
Addressing the comment. Note that you must not use a non-integer in the second argument of
NumberForm, because it generates an error message, and is then ignored:
NumberForm::iprf: Formatting specification 1.1 should be a positive integer or a pair of positive integers.