".github/workflows/test-linux-gpu.yml" did not exist on "0ed5d81196868c0f87b7e3e89d28c998b759fc60"
Commit 93a10821 authored by Jeffrey Morgan's avatar Jeffrey Morgan
Browse files

only show decimal points for smaller file size numbers

parent be61a817
package format
import "fmt"
import (
"fmt"
"math"
)
const (
Byte = 1
......@@ -11,16 +14,32 @@ const (
)
func HumanBytes(b int64) string {
var value float64
var unit string
switch {
case b > TeraByte:
return fmt.Sprintf("%.1f TB", float64(b)/TeraByte)
case b > GigaByte:
return fmt.Sprintf("%.1f GB", float64(b)/GigaByte)
case b > MegaByte:
return fmt.Sprintf("%.1f MB", float64(b)/MegaByte)
case b > KiloByte:
return fmt.Sprintf("%.1f KB", float64(b)/KiloByte)
case b >= TeraByte:
value = float64(b) / TeraByte
unit = "TB"
case b >= GigaByte:
value = float64(b) / GigaByte
unit = "GB"
case b >= MegaByte:
value = float64(b) / MegaByte
unit = "MB"
case b >= KiloByte:
value = float64(b) / KiloByte
unit = "KB"
default:
return fmt.Sprintf("%d B", b)
}
switch {
case value >= 100:
return fmt.Sprintf("%d %s", int(value), unit)
case value != math.Trunc(value):
return fmt.Sprintf("%.1f %s", value, unit)
default:
return fmt.Sprintf("%d %s", int(value), unit)
}
}
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment