fix wrong float and bool conversion
This commit is contained in:
@@ -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
|
||||
}
|
||||
|
Reference in New Issue
Block a user