fix wrong float and bool conversion
This commit is contained in:
@@ -36,8 +36,8 @@ func Float32From(v any) float32 {
|
|||||||
case uint64:
|
case uint64:
|
||||||
return float32(val)
|
return float32(val)
|
||||||
case string:
|
case string:
|
||||||
if i, err := strconv.Atoi(val); err == nil {
|
if f64, err := strconv.ParseFloat(val, 32); err == nil {
|
||||||
return float32(i)
|
return float32(f64)
|
||||||
}
|
}
|
||||||
return 0
|
return 0
|
||||||
default:
|
default:
|
||||||
@@ -76,8 +76,8 @@ func Float64From(v any) float64 {
|
|||||||
case uint64:
|
case uint64:
|
||||||
return float64(val)
|
return float64(val)
|
||||||
case string:
|
case string:
|
||||||
if i, err := strconv.Atoi(val); err == nil {
|
if f64, err := strconv.ParseFloat(val, 32); err == nil {
|
||||||
return float64(i)
|
return f64
|
||||||
}
|
}
|
||||||
return 0
|
return 0
|
||||||
default:
|
default:
|
||||||
@@ -433,7 +433,14 @@ func BoolFrom(v any) bool {
|
|||||||
case float64:
|
case float64:
|
||||||
return val >= 1
|
return val >= 1
|
||||||
case string:
|
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:
|
default:
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user