目录math标准库Abs函数Max函数Min函数CeilFloor函数Trunc函数Dim函数Mod函数Pow函数Sqrt函数Cbrt函数Modf函数rand代码示例小结mat...
目录
math 标准库Abs 函数
Max 函数
Min 函数
Ceil
Floor 函数
Trunc 函数
Dim 函数
Mod 函数
Pow 函数
Sqrt 函数
Cbrt 函数
Modf 函数
rand
代码示例
小结
math 标准库
math 标准库提供了一些 常量如 int64 类型的最大值、float64 类型的最大值等,和常用的数学计算函数。
常用函数
如果想了解更多函数介绍和使用,可以到 pkg.go.dev/math 进行查看。
Abs 函数
Abs(x float64) float64:返回 x 的绝对值。 示例:
import (
"fmt"
"math"
)MVuQPdvoXH
func main() {
fmt.Println(math.Abs(-3.14)) // 3.14
}
Max 函数
Max(x, y float64) float64:返回 x 与 y 中的最大值。 示例:
import (
"fmt"
"math"
)
func main() {
fmt.Println(math.Max(1.5, 2.5)) // 2.5
}
Min 函数
Min(x, y float64) float64:返回 x 和 y 中的最小值。 示例:
import (
"fmt"
"math"
)
func main() {
fmt.Println(math.Min(1.5, 2.5)) // 1.5
}
Ceil
Ceil(x float64) float64:返回一个大于等于 x 的最小整数值,也就是向上取整。 示例:
import (
"fmt"
"math"
)
func main() {
fmt.Println(math.Ceil(1.4)) // 2
fmt.Println(math.Ceil(2)) // 2
}
Floor 函数
Ceil(x float64) float64:返回一个小于等于 x 的最小整数值,也就是向下取整。 示例:
import (
"fmt"
"math"
)
func main() {
fmt.Println(math.Floor(1.4)) // 1
fmt.Println(math.Floor(1)) // 1
}
Trunc 函数
Trunc(x float64) float64:返回浮点数 x 的整数部分,使用 Floor 函数也能实现。 示例:
import (
"fmt"
"math"
)
func main() {
fmt.Println(math.Trunc(1.4)) // 1
}
Dim 函数
Dim(x, y float64) float64:返回 x-y 与 0 中最大的值。 示例:
import (
"fmt"
"math"
)
func main() {
fmt.Println(math.Dim(2.0, 1.0)) // 1
fmt.Println(math.Dim(1.0, 2.0)) // 0
}
Mod 函数
Mod(x, y float64) float64:对 x / y 进行取余运算 x % y。 示例:
import (
"fmt"
"math"
)
func main() {
fmt.Println(math.Mod(5.0, 3.0)) // 3
fmt.Println(math.Mod(3.0, 3.0)) // 0
}
Pow 函数
Pow(x, y float64) float64:计算 x 的 y 次幂。 示例:
import (
"fmt"
"math"
)
func main() {
fmt.Println(math.Pow(2, 1)) // 2
fmt.Println(math.Pow(2, 5)) // 32
}
Sqrt 函数
Sqrt(x float64) float64:对 x 开平方。 示例:
import (
"fmt"
"math"
)
func main() {
fmt.Println(math.Sqrt(64)) // 8
fmt.Println(math.Sqrt(16)) // 4
}
Cbrt 函数
Cbrt(x float64) float64:对 x 开立方。 示例:
import (
"fmt"
"math"
)
func main() {
fmt.Println(math.Cbrt(64)) // 4
fmt.Println(math.Cbrt(8)) // 2
}
Modf 函数
Modf(f float64) (int float64, frac float64):分别取出 f 的整数部分和小数部分。
int 参数,整数部分。frac 参数,小数部分。 示例:import (
"fmt"
"math"
)
func main() {
integer, decimal := math.Modf(3.1415)
fmt.Printf("整数部分:%.f 小数部分:%.4f", integer, decimal) // 整数部分:3 小数部分:0.1415
}
rand
rand 标准库提供了多个获取不同javascript类型随机数的函数。
常用函数
如果想了解更多函数介绍和使用,可以到 pkg.go.dev/math/rand 进行查看。
代码示例
import (
"fmt"
"math/rand"
)
func main() {
fmt.Println(rand.Int()) // 5577006791947779410
fmt.Println(rand.Intn(10)) // 7
fmt.Println(rand.Int31()) // 1427131847
fmt.Println(rand.Uint32()) // 1879968118
fmt.Println(rand.Int31n(10)) // 1
fmt.Println(rand.Int63()) // 6334824724549167320
fmt.Println(rand.Uint64()) // 9828766684487745566
fmt.Println(rand.Int63n(10)) // 8
fmt.Println(rand.Float32()) // 0.09696952
fmt.Println(rand.Float64()) // 0.30091186058528707
}
多次运行上述代码,发现获取到的随机数都是一样的,这是因为我们没有设置随机种子。可以通过 Seed 函数进行设置:
import (
"fmt"
"math/rand"
"time"
)
func main() {
rand.Seed(time.Now().Unix())
fmt.Println(rand.Intn(10))
}
使用 Seed 函数设置随机种子,将当前时间的秒数作为参数。后续多次获取随机数的值将不会一直一样。
小结
本文介绍了标准库 math 和 rand 的常用函数的用法,并通过例子进行说明。
math 库里虽说有最大值和最小值比较,但是形参类型必须是浮点型,如果我们想比较的是整型的最大最小值,就得自己封装函数。
获取随机数时,不要忘记设置随机种子,否则多次获取到的随机数将会是一样的。
以上就是一文带你了解Go语言标准库math和rand的常用函数的详细内容,更多关于Go语言math rand的资料请关注我们其它相关文章!










