summaryrefslogtreecommitdiff
path: root/py/formatfloat.c
diff options
context:
space:
mode:
authorDamien George <damien.p.george@gmail.com>2017-10-04 23:15:55 +1100
committerDamien George <damien.p.george@gmail.com>2017-10-10 16:01:13 +1100
commit08a196697c5dfb8cbe3b3e85c1c5f94e3a27804c (patch)
tree502d4d42aefb770f31eecb0dca8b55bdab7beaee /py/formatfloat.c
parent81a06d2c9c3ce081043e1eb948b65014f1b1786a (diff)
py/formatfloat: Don't print the negative sign of a NaN value.
NaN may have the sign bit set but it has no meaning, so don't print it out.
Diffstat (limited to 'py/formatfloat.c')
-rw-r--r--py/formatfloat.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/py/formatfloat.c b/py/formatfloat.c
index 35cd5d51a..b61a958a2 100644
--- a/py/formatfloat.c
+++ b/py/formatfloat.c
@@ -30,6 +30,7 @@
#include <assert.h>
#include <stdlib.h>
#include <stdint.h>
+#include <math.h>
#include "py/formatfloat.h"
/***********************************************************************
@@ -82,7 +83,6 @@ static inline int fp_isless1(float x) { union floatbits fb = {x}; return fb.u <
#define FPROUND_TO_ONE 0.999999999995
#define FPDECEXP 256
#define FPMIN_BUF_SIZE 7 // +9e+199
-#include <math.h>
#define fp_signbit(x) signbit(x)
#define fp_isspecial(x) 1
#define fp_isnan(x) isnan(x)
@@ -122,7 +122,7 @@ int mp_format_float(FPTYPE f, char *buf, size_t buf_size, char fmt, int prec, ch
}
return buf_size >= 2;
}
- if (fp_signbit(f)) {
+ if (fp_signbit(f) && !isnan(f)) {
*s++ = '-';
f = -f;
} else {