50 lines
1.3 KiB
Go
50 lines
1.3 KiB
Go
// Package numx 数值处理与可读格式化工具:数字低位取整、流量字节数格式化、多整数取最值。
|
||
package numx
|
||
|
||
import (
|
||
"fmt"
|
||
"math"
|
||
)
|
||
|
||
// IgnoreDigits 数字低位取整:去掉最后 digitsToIgnore 位并补零
|
||
func IgnoreDigits(value, digitsToIgnore int) int {
|
||
divider := int(math.Pow10(digitsToIgnore))
|
||
return (value / divider) * divider
|
||
}
|
||
|
||
// FormatFlow 流量字节数格式化为带单位的可读字符串(B/KB/MB/GB/TB)
|
||
func FormatFlow(value int64) string {
|
||
if value < 1024 {
|
||
return fmt.Sprintf("%d B", value)
|
||
} else if value < 1024*1024 {
|
||
return fmt.Sprintf("%.1f KB", float64(value)/float64(1024))
|
||
} else if value < 1024*1024*1024 {
|
||
return fmt.Sprintf("%.1f MB", float64(value)/float64(1024*1024))
|
||
} else if value < 1024*1024*1024*1024 {
|
||
return fmt.Sprintf("%.1f GB", float64(value)/float64(1024*1024*1024))
|
||
}
|
||
return fmt.Sprintf("%.2f TB", float64(value)/float64(1024*1024*1024*1024))
|
||
}
|
||
|
||
// Max 返回多个整数中的最大值
|
||
func Max(vals ...int) int {
|
||
var max int
|
||
for _, val := range vals {
|
||
if val > max {
|
||
max = val
|
||
}
|
||
}
|
||
return max
|
||
}
|
||
|
||
// Min 返回多个整数中的最小值
|
||
func Min(vals ...int) int {
|
||
var min int
|
||
for _, val := range vals {
|
||
if min == 0 || val <= min {
|
||
min = val
|
||
}
|
||
}
|
||
return min
|
||
}
|