util.go 576 B

1234567891011121314151617181920212223242526272829
  1. package main
  2. import "fmt"
  3. func MetricPrefix(n int64) string {
  4. if n > 1e9 {
  5. return fmt.Sprintf("%.02f G", float64(n)/1e9)
  6. }
  7. if n > 1e6 {
  8. return fmt.Sprintf("%.02f M", float64(n)/1e6)
  9. }
  10. if n > 1e3 {
  11. return fmt.Sprintf("%.01f k", float64(n)/1e3)
  12. }
  13. return fmt.Sprintf("%d ", n)
  14. }
  15. func BinaryPrefix(n int64) string {
  16. if n > 1<<30 {
  17. return fmt.Sprintf("%.02f Gi", float64(n)/(1<<30))
  18. }
  19. if n > 1<<20 {
  20. return fmt.Sprintf("%.02f Mi", float64(n)/(1<<20))
  21. }
  22. if n > 1<<10 {
  23. return fmt.Sprintf("%.01f Ki", float64(n)/(1<<10))
  24. }
  25. return fmt.Sprintf("%d ", n)
  26. }