From d590b9d386977d342fc3580e473219d5b9e38503 Mon Sep 17 00:00:00 2001 From: Bruce Hill Date: Fri, 7 Mar 2025 15:30:26 -0500 Subject: Fix number precision stuff --- environment.c | 4 ++-- stdlib/nums.c | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/environment.c b/environment.c index aaf6dfe7..d37d19ef 100644 --- a/environment.c +++ b/environment.c @@ -230,7 +230,7 @@ env_t *new_compilation_unit(CORD libname) {"Num", Type(NumType, .bits=TYPE_NBITS64), "Num_t", "Num$info", TypedArray(ns_entry_t, {"near", "Num$near", "func(x,y:Num, ratio=1e-9, min_epsilon=1e-9 -> Bool)"}, {"clamped", "Num$clamped", "func(x,low,high:Num -> Num)"}, - {"format", "Num$format", "func(n:Num, precision=0 -> Text)"}, + {"format", "Num$format", "func(n:Num, precision=16 -> Text)"}, {"scientific", "Num$scientific", "func(n:Num,precision=0 -> Text)"}, {"isinf", "Num$isinf", "func(n:Num -> Bool)"}, {"isfinite", "Num$isfinite", "func(n:Num -> Bool)"}, @@ -259,7 +259,7 @@ env_t *new_compilation_unit(CORD libname) {"Num32", Type(NumType, .bits=TYPE_NBITS32), "Num32_t", "Num32$info", TypedArray(ns_entry_t, {"near", "Num32$near", "func(x,y:Num32, ratio=Num32(1e-9), min_epsilon=Num32(1e-9) -> Bool)"}, {"clamped", "Num32$clamped", "func(x,low,high:Num32 -> Num32)"}, - {"format", "Num32$format", "func(n:Num32, precision=0 -> Text)"}, + {"format", "Num32$format", "func(n:Num32, precision=8 -> Text)"}, {"scientific", "Num32$scientific", "func(n:Num32, precision=0 -> Text)"}, {"isinf", "Num32$isinf", "func(n:Num32 -> Bool)"}, {"isfinite", "Num32$isfinite", "func(n:Num32 -> Bool)"}, diff --git a/stdlib/nums.c b/stdlib/nums.c index b227ccb8..6a645a37 100644 --- a/stdlib/nums.c +++ b/stdlib/nums.c @@ -50,7 +50,7 @@ public CONSTFUNC bool Num$near(double a, double b, double ratio, double absolute } public Text_t Num$format(double f, Int_t precision) { - return Text$format("%.*f", (int)Int64$from_int(precision, false), f); + return Text$format("%.*g", (int)Int64$from_int(precision, false), f); } public Text_t Num$scientific(double f, Int_t precision) { @@ -125,7 +125,7 @@ public CONSTFUNC bool Num32$near(float a, float b, float ratio, float absolute) } public Text_t Num32$format(float f, Int_t precision) { - return Text$format("%.*f", (int)Int64$from_int(precision, false), (double)f); + return Text$format("%.*g", (int)Int64$from_int(precision, false), (double)f); } public Text_t Num32$scientific(float f, Int_t precision) { -- cgit v1.2.3