summaryrefslogtreecommitdiffstats
path: root/internal/percentage.go
diff options
context:
space:
mode:
Diffstat (limited to 'internal/percentage.go')
-rw-r--r--internal/percentage.go19
1 files changed, 19 insertions, 0 deletions
diff --git a/internal/percentage.go b/internal/percentage.go
new file mode 100644
index 0000000..4bc36f5
--- /dev/null
+++ b/internal/percentage.go
@@ -0,0 +1,19 @@
+package internal
+
+import "math"
+
+// Percentage is a helper function, to calculate percentage.
+func Percentage(total, current int64, width uint) float64 {
+ if total <= 0 {
+ return 0
+ }
+ if current >= total {
+ return float64(width)
+ }
+ return float64(int64(width)*current) / float64(total)
+}
+
+// PercentageRound same as Percentage but with math.Round.
+func PercentageRound(total, current int64, width uint) float64 {
+ return math.Round(Percentage(total, current, width))
+}