format.go 411 B

123456789101112131415161718
  1. package common
  2. import (
  3. "fmt"
  4. )
  5. // FormatTraffic formats traffic bytes into human-readable units (B, KB, MB, GB, TB, PB).
  6. func FormatTraffic(trafficBytes int64) string {
  7. units := []string{"B", "KB", "MB", "GB", "TB", "PB"}
  8. unitIndex := 0
  9. size := float64(trafficBytes)
  10. for size >= 1024 && unitIndex < len(units)-1 {
  11. size /= 1024
  12. unitIndex++
  13. }
  14. return fmt.Sprintf("%.2f%s", size, units[unitIndex])
  15. }