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 }