From 30f220316cf3706858a4da733669cc95b1eb6289 Mon Sep 17 00:00:00 2001 From: Doug Currie Date: Sat, 9 Jan 2016 12:52:38 -0500 Subject: [PATCH] Fix dtoa for +nan.0 +inf.0 -inf.0 --- contrib/10.roundtrip/emyg_dtoa.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/contrib/10.roundtrip/emyg_dtoa.c b/contrib/10.roundtrip/emyg_dtoa.c index 9fbc5e19..ec76a1c2 100644 --- a/contrib/10.roundtrip/emyg_dtoa.c +++ b/contrib/10.roundtrip/emyg_dtoa.c @@ -421,11 +421,12 @@ static inline void Prettify(char* buffer, int length, int k) { } void emyg_dtoa (double value, char* buffer) { - // Not handling NaN and inf - assert(!isnan(value)); - assert(!isinf(value)); - if (value == 0) { + if (isinf(value)) + strcpy(buffer, signbit(value) ? "-inf.0" : "+inf.0"); + else if (isnan(value)) + strcpy(buffer, signbit(value) ? "-nan.0" : "+nan.0"); + else if (value == 0) { buffer[0] = '0'; buffer[1] = '.'; buffer[2] = '0';