package util import "fmt" func BytesToSize(sz int64) string { absSz := sz if absSz < 0 { absSz *= -1 } const unit = 1000 if absSz < unit { return fmt.Sprintf("%d B", sz) } div, exp := int64(unit), 0 for n := absSz / unit; n >= unit; n /= unit { div *= unit exp++ } return fmt.Sprintf("%.1f %cB", float64(sz)/float64(div), "kMGTPE"[exp]) }