diff options
author | Damien George <damien.p.george@gmail.com> | 2017-10-04 23:15:55 +1100 |
---|---|---|
committer | Damien George <damien.p.george@gmail.com> | 2017-10-10 16:01:13 +1100 |
commit | 08a196697c5dfb8cbe3b3e85c1c5f94e3a27804c (patch) | |
tree | 502d4d42aefb770f31eecb0dca8b55bdab7beaee /py/formatfloat.c | |
parent | 81a06d2c9c3ce081043e1eb948b65014f1b1786a (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.c | 4 |
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 { |