mirror of
https://gitee.com/xiangheng/x_admin.git
synced 2025-10-05 00:02:50 +08:00
ToInt64
This commit is contained in:
@@ -16,30 +16,35 @@ type NullFloat struct {
|
||||
|
||||
func DecodeFloat(value any) (any, error) {
|
||||
switch v := value.(type) {
|
||||
case float64:
|
||||
f := v
|
||||
return NullFloat{Float: &f, Valid: true}, nil
|
||||
case float32:
|
||||
f := float64(v)
|
||||
return NullFloat{Float: &f, Valid: true}, nil
|
||||
case int:
|
||||
f := float64(v)
|
||||
return NullFloat{Float: &f, Valid: true}, nil
|
||||
case int64:
|
||||
f := float64(v)
|
||||
return NullFloat{Float: &f, Valid: true}, nil
|
||||
case string:
|
||||
if v == "" {
|
||||
return NullFloat{Float: nil, Valid: false}, nil
|
||||
}
|
||||
f, err := strconv.ParseFloat(v, 64)
|
||||
return NullFloat{Float: &f, Valid: true}, err
|
||||
// case float64:
|
||||
// f := v
|
||||
// return NullFloat{Float: &f, Valid: true}, nil
|
||||
// case float32:
|
||||
// f := float64(v)
|
||||
// return NullFloat{Float: &f, Valid: true}, nil
|
||||
// case int:
|
||||
// f := float64(v)
|
||||
// return NullFloat{Float: &f, Valid: true}, nil
|
||||
// case int64:
|
||||
// f := float64(v)
|
||||
// return NullFloat{Float: &f, Valid: true}, nil
|
||||
// case string:
|
||||
// if v == "" {
|
||||
// return NullFloat{Float: nil, Valid: false}, nil
|
||||
// }
|
||||
// f, err := strconv.ParseFloat(v, 64)
|
||||
// return NullFloat{Float: &f, Valid: true}, err
|
||||
case nil:
|
||||
return NullFloat{Float: nil, Valid: false}, nil
|
||||
case NullFloat:
|
||||
return v, nil
|
||||
default:
|
||||
result, err := convert_util.ToFloat64(value)
|
||||
if err != nil {
|
||||
return NullFloat{Float: nil, Valid: false}, err
|
||||
}
|
||||
return NullFloat{Float: &result, Valid: true}, nil
|
||||
}
|
||||
return NullFloat{Float: nil, Valid: false}, nil
|
||||
}
|
||||
|
||||
// gorm实现Scanner
|
||||
|
Reference in New Issue
Block a user