From dbd62d918c5e3244d2ed1f5f674d44e87c93ce59 Mon Sep 17 00:00:00 2001 From: Brendan Hansen Date: Fri, 19 May 2023 15:28:27 -0500 Subject: [PATCH] fixed: `conv.f64_to_str` --- core/conv/conv.onyx | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/core/conv/conv.onyx b/core/conv/conv.onyx index 88378619..18737c3b 100644 --- a/core/conv/conv.onyx +++ b/core/conv/conv.onyx @@ -298,19 +298,22 @@ f64_to_str :: (f: f64, buf: [] u8, digits_after_decimal := 4) -> str { s1 := i64_to_str(~~int_part, 10, buf); for i: 0 .. s1.count do buf.data[i + len] = s1.data[i]; - buf.data[s1.count + len] = #char "."; - len += s1.count + 1; - digits := "0123456789"; + if digits_after_decimal > 0 { + buf.data[s1.count + len] = #char "."; + len += s1.count + 1; - for i: digits_after_decimal { - dec_part *= 10; - v := math.trunc(dec_part); - dec_part -= v; + digits := "0123456789"; - buf.data[len + i] = digits[cast(i32) v]; + for i: digits_after_decimal { + dec_part *= 10; + v := math.trunc(dec_part); + dec_part -= v; + + buf.data[len + i] = digits[cast(i32) v]; + } + len += digits_after_decimal; } - len += digits_after_decimal; return str.{ buf.data, len }; } -- 2.25.1