in utils/type.go [36:65]
func ToFloat(i interface{}, defaultVal float64) float64 {
switch value := i.(type) {
case float64:
return value
case int:
return float64(value)
case int32:
return float64(value)
case int64:
return float64(value)
case uint32:
return float64(value)
case uint:
return float64(value)
case string:
if f, err := strconv.ParseFloat(value, 64); err == nil {
return f
} else {
return defaultVal
}
case json.Number:
if f, err := value.Float64(); err == nil {
return f
} else {
return defaultVal
}
default:
return defaultVal
}
}