Refuse a rows weight too close to 0 to tell from it, by the rule a JSON option uses

This commit is contained in:
2026-10-08 12:19:36 +02:00
committed by Lillem4n
parent 8b5ed36bca
commit f964816830
3 changed files with 16 additions and 7 deletions
+8
View File
@@ -4,6 +4,7 @@ import (
"fmt"
"slices"
"strconv"
"strings"
"unicode"
)
@@ -177,3 +178,10 @@ func (p *calcParser) ident() (CalcNode, error) {
}
return CalcVar{name, at}, nil
}
// Underflows reports a number written as text that reads as f = 0 though a digit before its
// exponent is not 0, as 1e-400 does: no float64 holds the number written.
func Underflows(text string, f float64) bool {
mantissa, _, _ := strings.Cut(strings.ToLower(text), "e")
return f == 0 && strings.ContainsAny(mantissa, "123456789")
}