github.com/bingoohuang/gg@v0.0.0-20240325092523-45da7dee9335/pkg/jsoni/any_float.go (about) 1 package jsoni 2 3 import ( 4 "context" 5 "strconv" 6 ) 7 8 type floatAny struct { 9 baseAny 10 val float64 11 } 12 13 func (a *floatAny) Parse() *Iterator { return nil } 14 func (a *floatAny) ValueType() ValueType { return NumberValue } 15 func (a *floatAny) MustBeValid() Any { return a } 16 func (a *floatAny) LastError() error { return nil } 17 func (a *floatAny) ToBool() bool { return a.ToFloat64() != 0 } 18 func (a *floatAny) ToInt() int { return int(a.val) } 19 func (a *floatAny) ToInt32() int32 { return int32(a.val) } 20 func (a *floatAny) ToInt64() int64 { return int64(a.val) } 21 func (a *floatAny) ToUint() uint { 22 if a.val > 0 { 23 return uint(a.val) 24 } 25 return 0 26 } 27 28 func (a *floatAny) ToUint32() uint32 { 29 if a.val > 0 { 30 return uint32(a.val) 31 } 32 return 0 33 } 34 35 func (a *floatAny) ToUint64() uint64 { 36 if a.val > 0 { 37 return uint64(a.val) 38 } 39 return 0 40 } 41 42 func (a *floatAny) ToFloat32() float32 { return float32(a.val) } 43 func (a *floatAny) ToFloat64() float64 { return a.val } 44 45 func (a *floatAny) ToString() string { 46 return strconv.FormatFloat(a.val, 'E', -1, 64) 47 } 48 49 func (a *floatAny) WriteTo(_ context.Context, stream *Stream) { stream.WriteFloat64(a.val) } 50 func (a *floatAny) GetInterface(context.Context) interface{} { return a.val }