Files
zogo/numx/numx.go
T
4566704 263cf78317 feat(numx): 自 go-hua/common 迁入数值工具并独立成包
- 流量格式化、低位取整、多整数取最值(Max/Min 自 version.go 归位)
- 附单元测试、examples/numx 例程与包 README
2026-09-20 12:20:51 +08:00

50 lines
1.3 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
// 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
}