summaryrefslogtreecommitdiffstats
path: root/modules/base/tool.go
diff options
context:
space:
mode:
Diffstat (limited to 'modules/base/tool.go')
-rw-r--r--modules/base/tool.go24
1 files changed, 24 insertions, 0 deletions
diff --git a/modules/base/tool.go b/modules/base/tool.go
index e1a1b661be..a21fd9b0f4 100644
--- a/modules/base/tool.go
+++ b/modules/base/tool.go
@@ -420,3 +420,27 @@ func SetupGiteaRoot() string {
}
return giteaRoot
}
+
+// FormatNumberSI format a number
+func FormatNumberSI(data interface{}) string {
+ var num int64
+ if num1, ok := data.(int64); ok {
+ num = num1
+ } else if num1, ok := data.(int); ok {
+ num = int64(num1)
+ } else {
+ return ""
+ }
+
+ if num < 1000 {
+ return fmt.Sprintf("%d", num)
+ } else if num < 1000000 {
+ num2 := float32(num) / float32(1000.0)
+ return fmt.Sprintf("%.1fk", num2)
+ } else if num < 1000000000 {
+ num2 := float32(num) / float32(1000000.0)
+ return fmt.Sprintf("%.1fM", num2)
+ }
+ num2 := float32(num) / float32(1000000000.0)
+ return fmt.Sprintf("%.1fG", num2)
+}