summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
-rw-r--r--py/formatfloat.c5
-rw-r--r--tests/float/float_array.py2
2 files changed, 6 insertions, 1 deletions
diff --git a/py/formatfloat.c b/py/formatfloat.c
index cc06361008..a801055a65 100644
--- a/py/formatfloat.c
+++ b/py/formatfloat.c
@@ -142,7 +142,10 @@ int mp_format_float(float f, char *buf, size_t buf_size, char fmt, int prec, cha
char e_sign_char = '-';
if (num.f < 1.0F && num.f >= 0.9999995F) {
num.f = 1.0F;
- first_dig = '1';
+ if (e > 1) {
+ // numbers less than 1.0 start with 0.xxx
+ first_dig = '1';
+ }
if (e == 0) {
e_sign_char = '+';
}
diff --git a/tests/float/float_array.py b/tests/float/float_array.py
index c0f2c587cf..033877db3c 100644
--- a/tests/float/float_array.py
+++ b/tests/float/float_array.py
@@ -12,3 +12,5 @@ def test(a):
test(array('f'))
test(array('d'))
+
+print('{:.4f}'.format(array('f', b'\xcc\xcc\xcc=')[0]))