private static void AppendNonNegativeNumber (StringBuilder sb, int v)
{
if (v < 0)
throw new ArgumentException ();
int i = ScaleOrder (v) - 1;
do {
int n = v / (int)GetTenPowerOf (i);
sb.Append ((char)('0' | n));
v -= (int)GetTenPowerOf (i--) * n;
} while (i >= 0);
}