«

Golang Math标准库

时间:2025-1-10 20:32     作者:杨佳乐     分类: Golang


package main

import (
    "fmt"
    "math"
    "math/rand"
    "time"
)

func main(){

    // Math
    // math 标准库提供了常用的数学函数和常量,涵盖浮点运算、三角函数、指数运算、对数运算等,适用于科学计算、工程计算和其他需要数学支持的场景

    // 主要功能分类
    // 常量

    // 提供数学相关的常量,如圆周率、最大/最小值等。
    // 基础运算

    // 提供平方根、绝对值、幂运算等基本数学运算。
    // 三角函数

    // 包括正弦、余弦、正切及其反函数。
    // 对数与指数

    // 包括自然对数、以 10 为底的对数、指数运算等。
    // 舍入函数

    // 提供向上取整、向下取整、四舍五入等功能。

    // 数字和常量
    // math.Pi  3.141592653589793   圆周率
    // math.E   2.718281828459045   自然常数 e
    // math.MaxFloat64  最大的 float64 值   
    // math.SmallestNonzeroFloat64  最小的非零 float64 值 
    // math.MaxInt64    最大的 int64 值 
    // math.MinInt64    最小的 int64 值 

    fmt.Println("math.Pi",math.Pi)
    fmt.Println("math.E",math.E)
    fmt.Println("math.MaxFloat64",math.MaxFloat64)
    fmt.Println("math.MaxInt64",math.MaxInt64)

    // 基础运算
    // math.Abs(x)  返回 x 的绝对值   math.Abs(-5.5) → 5.5
    // math.Sqrt(x) 返回 x 的平方根   math.Sqrt(16) → 4
    // math.Pow(x, y)   返回 x 的 y 次幂 math.Pow(2, 3) → 8
    // math.Mod(x, y)   返回 x 除以 y 的余数(浮点数)  math.Mod(10, 3) → 1
    // math.Ceil(x) 向上取整    math.Ceil(2.3) → 3
    // math.Floor(x)    向下取整    math.Floor(2.7) → 2
    // math.Round(x)    四舍五入    math.Round(2.5) → 3
    // math.Trunc(x)    返回 x 的整数部分(去掉小数)    math.Trunc(3.9) → 3

    fmt.Println("math.Ceil",math.Ceil(6.5)) // 向上取整
    fmt.Println("math.Floor",math.Floor(6.5)) // 向下取整
    fmt.Println("math.Round",math.Round(6.5)) // 四舍五入

    // 三角函数
    // math.Sin(x)  返回 x 的正弦值   math.Sin(math.Pi/2) → 1
    // math.Cos(x)  返回 x 的余弦值   math.Cos(math.Pi) → -1
    // math.Tan(x)  返回 x 的正切值   math.Tan(math.Pi/4) → 1
    // math.Asin(x) 返回 x 的反正弦值(弧度)  math.Asin(1) → Pi/2
    // math.Acos(x) 返回 x 的反余弦值(弧度)  math.Acos(1) → 0
    // math.Atan(x) 返回 x 的反正切值(弧度)  math.Atan(1) → Pi/4

    // 对数与指数
    // math.Exp(x)  返回 e^x  math.Exp(1) → 2.718281828459045
    // math.Log(x)  返回 x 的自然对数  math.Log(math.E) → 1
    // math.Log10(x)    返回 x 的以 10 为底的对数    math.Log10(100) → 2
    // math.Log2(x) 返回 x 的以 2 为底的对数 math.Log2(8) → 3

    // 比较函数
    // math.Max(x, y)   返回 x 和 y 中的较大值  math.Max(10, 20) → 20
    // math.Min(x, y)   返回 x 和 y 中的较小值  math.Min(10, 20) → 10

    var numA float64 = 10
    var numB float64 = 20

    maxNum := math.Max(numA,numB) // 获取两个中较大值

    fmt.Println(maxNum)

    // 生成随机数
    // 使用当前时间戳作为种子
    rand.Seed(time.Now().UnixNano())

    // 生成随机整数
    fmt.Println("随机整数:", rand.Intn(100))

    // 生成随机浮点数
    fmt.Println("随机浮点数:", rand.Float64())

}

标签: Golang标准库