diff --git a/types/data.go b/types/data.go index 1e7c711..0ceccff 100644 --- a/types/data.go +++ b/types/data.go @@ -166,6 +166,27 @@ func (data Data) MustGetDataSlice(key string) []Data { return values } +// GetFloat64 取得64位元浮點數 +func (data Data) GetFloat64(key string) (float64, error) { + value, err := data.Get(key) + if err != nil { + return 0, err + } + + switch value.(type) { + case float64: + return value.(float64), nil + } + + return 0, ErrFormat +} + +// MustGetFloat64 強制取得64位元浮點數 +func (data Data) MustGetFloat64(key string) float64 { + value, _ := data.GetFloat64(key) + return value +} + // GetInt64 取得64位元整數 func (data Data) GetInt64(key string) (int64, error) { value, err := data.Get(key)