Golang工具方法 — 格式化Byte为KB、MB、GB、TB、PB的IEC方法

package main

import "fmt"

// FormatByteCountIEC byteSize Byte
func FormatByteCountIEC(byteSize uint64) (newSize float64, unitStr string) {
	var basicUnitNumber float64 = 1024
	newSize = float64(byteSize)

	if newSize < basicUnitNumber {
		return newSize, "Byte"
	}

	var units = []string{"KB", "MB", "GB", "TB", "PB"}

	var unitIndex int
	for i := 0; i < len(units); i++ {
		newSize = newSize / basicUnitNumber
		unitIndex = i

		if newSize < basicUnitNumber {
			break
		}
	}

	return newSize, units[unitIndex]
}

func main() {
	size, unit := FormatByteCountIEC(2000000)
	fmt.Println(size, unit)
	fmt.Println(fmt.Sprintf("%.2f", size), unit)
}