feat 初始化
This commit is contained in:
@@ -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
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user