From b2a102fb584e55a5c07c25a1caa9575fe1732c14 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vicen=C8=9Biu=20Ciorbaru?= Date: Thu, 23 Nov 2017 13:03:23 +0200 Subject: [PATCH] Fix double floating point error in dtoa.c When running an optimized build, compiler optimizations cause loss of precision unless we force the expression to use a double type. --- strings/dtoa.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/strings/dtoa.c b/strings/dtoa.c index 9e0f7f4f43d..eccd05bcf92 100644 --- a/strings/dtoa.c +++ b/strings/dtoa.c @@ -1290,7 +1290,7 @@ static double ratio(Bigint *a, Bigint *b) dval(&db)= b2d(b, &kb); k= ka - kb + 32*(a->wds - b->wds); if (k > 0) - word0(&da)+= k*Exp_msk1; + word0(&da)+= k*Exp_msk1 * 1.0; else { k= -k;