py/formatfloat.c: Fix format of floating point numbers near 1.0.

In particular, numbers which are less than 1.0 but which
round up to 1.0.

This also makes those numbers which round up to 1.0 to
print with e+00 rather than e-00 for those formats which
print exponents.

Addresses issue #1178.
diff --git a/py/formatfloat.c b/py/formatfloat.c
index e73215a..64f0131 100644
--- a/py/formatfloat.c
+++ b/py/formatfloat.c
@@ -142,8 +142,14 @@
                 num.f *= *pos_pow;
             }
         }
+        char first_dig = '0';
+        char e_sign_char = '-';
         if (num.f < 1.0F && num.f >= 0.9999995F) {
             num.f = 1.0F;
+            first_dig = '1';
+            if (e == 0) {
+                e_sign_char = '+';
+            }
         } else {
             e++; 
             num.f *= 10.0F;
@@ -155,7 +161,7 @@
         if (fmt == 'f' || (fmt == 'g' && e <= 4)) {
             fmt = 'f';
             dec = -1;
-            *s++ = '0';
+            *s++ = first_dig;
 
             if (prec + e + 1 > buf_remaining) {
                 prec = buf_remaining - e - 1;
@@ -175,7 +181,7 @@
         } else {
             // For e & g formats, we'll be printing the exponent, so set the
             // sign.
-            e_sign = '-';
+            e_sign = e_sign_char;
             dec = 0;
 
             if (prec > (buf_remaining - 6)) {