feat 初始化

This commit is contained in:
2026-10-29 10:12:22 +08:00
parent 332d812347
commit 09c1df8a22
81 changed files with 2211 additions and 7821 deletions

View File

@@ -1,6 +1,7 @@
package utils
import (
"github.com/shopspring/decimal"
"math/rand"
"strconv"
)
@@ -26,3 +27,86 @@ func StringToInt64(s string) int64 {
func Int64ToString(i int64) string {
return strconv.FormatInt(i, 10)
}
// AddFloat64 对浮点数求和
func AddFloat64(places int32, number ...float64) float64 {
if len(number) == 0 {
return 0
}
result := decimal.NewFromFloat(0)
for _, n := range number {
result = result.Add(decimal.NewFromFloat(n))
}
return result.Round(places).InexactFloat64()
}
// SubFloat64 对浮点数求差
func SubFloat64(places int32, number ...float64) float64 {
if len(number) == 0 {
return 0
}
result := decimal.NewFromFloat(number[0])
for i := 1; i < len(number); i++ {
result = result.Sub(decimal.NewFromFloat(number[i]))
}
return result.Round(places).InexactFloat64()
}
// MulFloat64 对浮点数求积
func MulFloat64(places int32, number ...float64) float64 {
if len(number) == 0 {
return 0
}
result := decimal.NewFromFloat(1)
for _, n := range number {
result = result.Mul(decimal.NewFromFloat(n))
}
return result.Round(places).InexactFloat64()
}
// DivFloat64 对浮点数求商
func DivFloat64(places int32, number ...float64) float64 {
if len(number) == 0 {
return 0
}
result := decimal.NewFromFloat(number[0])
for i := 1; i < len(number); i++ {
if number[i] == 0 {
return 0 // 避免除以零
}
result = result.Div(decimal.NewFromFloat(number[i]))
}
return result.Round(places).InexactFloat64()
}
// MaxInt32 返回两个 int32 中的较大值
func MaxInt32(a, b int32) int32 {
if a > b {
return a
}
return b
}
// MinInt32 返回两个 int32 中的较小值
func MinInt32(a, b int32) int32 {
if a < b {
return a
}
return b
}
// MaxFloat64 返回两个 float64 中的较大值
func MaxFloat64(a, b float64) float64 {
if a > b {
return a
}
return b
}
// MinFloat64 返回两个 float64 中的较小值
func MinFloat64(a, b float64) float64 {
if a < b {
return a
}
return b
}