🎨 Improve database rollup number calculation https://github.com/siyuan-note/siyuan/issues/10822

This commit is contained in:
Daniel 2024-04-01 16:57:57 +08:00
parent e8f0ea7c09
commit a3be3aea33
No known key found for this signature in database
GPG key ID: 86211BA83DF03017

View file

@ -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
}