From 77628ce11ce3693d8ac06f1a404a1005ba05f190 Mon Sep 17 00:00:00 2001 From: Luke Shumaker Date: Sat, 22 Jul 2023 19:01:44 -0600 Subject: textui.Portion: Always round percents down --- .golangci.yml | 1 + lib/textui/text.go | 6 +++--- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/.golangci.yml b/.golangci.yml index 1260169..b2e7ae9 100644 --- a/.golangci.yml +++ b/.golangci.yml @@ -68,6 +68,7 @@ linters-settings: gomnd: ignored-numbers: - '2' + - '100' ignored-functions: - 'binutil.NeedNBytes' - 'textui.Tunable' diff --git a/lib/textui/text.go b/lib/textui/text.go index 538bac2..aba946b 100644 --- a/lib/textui/text.go +++ b/lib/textui/text.go @@ -78,11 +78,11 @@ var _ fmt.Stringer = Portion[int]{} // String implements fmt.Stringer. func (p Portion[T]) String() string { - pct := float64(1) + pct := uint64(100) if p.D > 0 { - pct = float64(p.N) / float64(p.D) + pct = (uint64(p.N) * 100) / uint64(p.D) } - return printer.Sprintf("%v (%v/%v)", number.Percent(pct), uint64(p.N), uint64(p.D)) + return printer.Sprintf("%d%% (%v/%v)", pct, uint64(p.N), uint64(p.D)) } type metric[T constraints.Integer | constraints.Float] struct { -- cgit v1.1-4-g5e80