From a74365c5fb79a2e8c01b16143749f03ef013f1d0 Mon Sep 17 00:00:00 2001 From: Doug Torrance Date: Fri, 1 Nov 2024 23:17:51 -0400 Subject: [PATCH] Use mpfr function to get meaningful decimal digits in "format" --- M2/Macaulay2/d/gmp1.d | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/M2/Macaulay2/d/gmp1.d b/M2/Macaulay2/d/gmp1.d index ee9a6745c5..fa73c99cc2 100644 --- a/M2/Macaulay2/d/gmp1.d +++ b/M2/Macaulay2/d/gmp1.d @@ -73,7 +73,8 @@ export format( ng := sign(x); if isinf(x) then return array(string)(if ng then "-" else "","infinity"); if isnan(x) then return array(string)(if ng then "-" else "","NotANumber"); - meaningful := int(floor(precision(x) / log2ten)) + 1; + meaningful := Ccode(int, + "mpfr_get_str_ndigits(", base, ", ", precision(x), ")"); if s == 0 || s > meaningful then s = meaningful; -- print at most the "meaningful" digits sgn := ""; if ng then (