diff --git a/kernel/av/value.go b/kernel/av/value.go index 6e80d1ec0..3901084d4 100644 --- a/kernel/av/value.go +++ b/kernel/av/value.go @@ -716,7 +716,7 @@ func (r *ValueRollup) RenderContents(calc *RollupCalc, destKey *Key) { case CalcOperatorSum: sum := 0.0 for _, v := range r.Contents { - if nil != v.Number { + if KeyTypeNumber == v.Type && nil != v.Number && v.Number.IsNotEmpty { sum += v.Number.Content } } @@ -725,7 +725,7 @@ func (r *ValueRollup) RenderContents(calc *RollupCalc, destKey *Key) { sum := 0.0 count := 0 for _, v := range r.Contents { - if nil != v.Number { + if KeyTypeNumber == v.Type && nil != v.Number && v.Number.IsNotEmpty { sum += v.Number.Content count++ } @@ -736,7 +736,7 @@ func (r *ValueRollup) RenderContents(calc *RollupCalc, destKey *Key) { case CalcOperatorMedian: var numbers []float64 for _, v := range r.Contents { - if nil != v.Number { + if KeyTypeNumber == v.Type && nil != v.Number && v.Number.IsNotEmpty { numbers = append(numbers, v.Number.Content) } } @@ -747,7 +747,7 @@ func (r *ValueRollup) RenderContents(calc *RollupCalc, destKey *Key) { case CalcOperatorMin: minVal := math.MaxFloat64 for _, v := range r.Contents { - if nil != v.Number { + if KeyTypeNumber == v.Type && nil != v.Number && v.Number.IsNotEmpty { if v.Number.Content < minVal { minVal = v.Number.Content } @@ -757,7 +757,7 @@ func (r *ValueRollup) RenderContents(calc *RollupCalc, destKey *Key) { case CalcOperatorMax: maxVal := -math.MaxFloat64 for _, v := range r.Contents { - if nil != v.Number { + if KeyTypeNumber == v.Type && nil != v.Number && v.Number.IsNotEmpty { if v.Number.Content > maxVal { maxVal = v.Number.Content } @@ -768,7 +768,7 @@ func (r *ValueRollup) RenderContents(calc *RollupCalc, destKey *Key) { minVal := math.MaxFloat64 maxVal := -math.MaxFloat64 for _, v := range r.Contents { - if nil != v.Number { + if KeyTypeNumber == v.Type && nil != v.Number && v.Number.IsNotEmpty { if v.Number.Content < minVal { minVal = v.Number.Content }