github.com/shivakar/gdupes@v0.0.0-20180726052558-d5c070c306d0/gdupes/utils.go (about) 1 package gdupes 2 3 import ( 4 "fmt" 5 "strings" 6 ) 7 8 // HumanizeSize returns human readable representation of size in bytes 9 func HumanizeSize(n float64) string { 10 out := "" 11 switch { 12 case n > 1e15: 13 out = fmt.Sprintf("%.2f PB", n/1e15) 14 case n > 1e12: 15 out = fmt.Sprintf("%.2f TB", n/1e12) 16 case n >= 1e9: 17 out = fmt.Sprintf("%.2f GB", n/1e9) 18 case n >= 1e6: 19 out = fmt.Sprintf("%.2f MB", n/1e6) 20 case n >= 1e3: 21 out = fmt.Sprintf("%.2f KB", n/1e3) 22 default: 23 out = fmt.Sprintf("%.2f B", n) 24 } 25 out = strings.Replace(out, ".00", "", -1) // Cleaning up integer values 26 27 return out 28 }