From 274a80d605c6744f65fbe520b3cf8cfbeb59bb6a Mon Sep 17 00:00:00 2001 From: Adrian Zuercher Date: Tue, 15 Jul 2025 19:20:11 +0200 Subject: [PATCH] fix wrong float and bool conversion --- utils/convert.go | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/utils/convert.go b/utils/convert.go index 326647b..d1f8a4f 100644 --- a/utils/convert.go +++ b/utils/convert.go @@ -36,8 +36,8 @@ func Float32From(v any) float32 { case uint64: return float32(val) case string: - if i, err := strconv.Atoi(val); err == nil { - return float32(i) + if f64, err := strconv.ParseFloat(val, 32); err == nil { + return float32(f64) } return 0 default: @@ -76,8 +76,8 @@ func Float64From(v any) float64 { case uint64: return float64(val) case string: - if i, err := strconv.Atoi(val); err == nil { - return float64(i) + if f64, err := strconv.ParseFloat(val, 32); err == nil { + return f64 } return 0 default: @@ -433,7 +433,14 @@ func BoolFrom(v any) bool { case float64: return val >= 1 case string: - return strings.ToLower(val) == "false" || v == "0" + if strings.ToLower(val) == "true" { + return true + } else if strings.ToLower(val) == "false" { + return false + } else if i, err := strconv.Atoi(val); err == nil { + return i > 0 + } + return false default: return false }