编程技术文章分享与教程

网站首页 > 技术文章 正文

golang math包 常量和方法 golang 常量数组

hmc789 2024-11-09 13:05:49 技术文章 2 ℃

math/rand

1 随机数

//如果种子参数一样, 每次运行程序产生的随机数都一样
rand.Seed(time.Now().UnixNano()) //以当前系统时间作为种子参数 nano: 纳米
//产生随机数
a := rand.Intn(100) //100以内的随机数

案例:

package main
import (
    "fmt"
    "math/rand"
    "time"
)
func main() {
    // 第一种方法:
    //如果种子参数一样, 每次运行程序产生的随机数都一样
    rand.Seed(time.Now().UnixNano()) //以当前系统时间作为种子参数 nano: 纳秒
    //产生随机数
    a := rand.Intn(100) //100以内的随机数
    fmt.Println(a) // 43
    // 第二种方法:
    r := rand.New(rand.NewSource(time.Now().UnixNano()))
    n := r.Intn(100)
    fmt.Println(n)

}

2 运算

package main
import (
"fmt"
"math"
)
func main() {
    i := 19
    fmt.Println(math.Abs(float64(i))) //取到绝对值
    fmt.Println(math.Ceil(4.7)) //向上取整
    fmt.Println(math.Floor(2.3)) //向下取整
    fmt.Println(math.Pow(4,3)) //X 的 Y次方 乘方
    fmt.Println(math.Pow10(6)) //10的N次方 乘方
    fmt.Println(math.Mod(22,4)) //取余数 22%4 效果一样
    fmt.Println(math.Modf(3.18)) //取整数跟小数
    fmt.Println(math.Sqrt(16)) //开平方 4
    fmt.Println(math.Cbrt(8)) //开立方 2
    fmt.Println(math.Pi) //π
    fmt.Println(math.Round(5.5)) //四舍五入
    fmt.Println(math.IsNaN(4.8)) //false 报告f是否表示一个NaN(Not A Number)值。
    fmt.Println(math.Trunc(2.99999999)) //1 返回整数部分(的浮点值)。
    fmt.Println(math.Max(-0.9, 0)) //0 返回x和y中最大值
    fmt.Println(math.Min(-0.5, 0)) //-0.5 返回x和y中最小值
    fmt.Println(math.Hypot(3, 4)) //5 返回Sqrt(p*p + q*q)
    fmt.Println(math.Pow(2, 8)) //256 返回x^y
    fmt.Println(math.Dim(-12, -19)) //7 函数返回x-y和0中的最大值
    fmt.Println(math.Dim(-12, 19)) //0 函数返回x-y和0中的最大值
    fmt.Println(math.Cbrt(8)) //2 返回x的三次方根

}

math 常量

package math
//数学常数。
const (
    E = 2.71828182845904523536028747135266249775724709369995957496696763 
    Pi = 3.14159265358979323846264338327950288419716939937510582097494459 
    Phi = 1.61803398874989484820458683436563811772030917980576286213544862 
    Sqrt2 = 1.41421356237309504880168872420969807856967187537694807317667974 
    SqrtE = 1.64872127070012814684865078781416357165377610071014801157507931 
    SqrtPi = 1.77245385090551602729816748334114518279754945612238712821380779 
    SqrtPhi = 1.27201964951406896425242246173749149171560804184009624861664038 
    Ln2 = 0.693147180559945309417232121458176568075500134360255254120680009 
    Log2E = 1 / Ln2
    Ln10 = 2.30258509299404568401799145468436420760110148862877297603332790
    Log10E = 1 / Ln10
)
//浮点极限值。
//Max是该类型可表示的最大有限值。
//SmallestNonzero是该类型可表示的最小正非零值。
const (
    MaxFloat32 = 3.40282346638528859811704183484516925440e+38 // 2**127 * (2**24 - 1) / 2**23
    SmallestNonzeroFloat32 = 1.401298464324817070923729583289916131280e-45 // 1 / 2**(127 - 1 + 23)
    MaxFloat64 = 1.797693134862315708145274237317043567981e+308 // 2**1023 * (2**53 - 1) / 2**52
    SmallestNonzeroFloat64 = 4.940656458412465441765687928682213723651e-324 // 1 / 2**(1023 - 1 + 52)
)
// Integer limit values.
const (
    MaxInt8 = 1<<7 - 1
    MinInt8 = -1 << 7
    MaxInt16 = 1<<15 - 1
    MinInt16 = -1 << 15
    MaxInt32 = 1<<31 - 1
    MinInt32 = -1 << 31
    MaxInt64 = 1<<63 - 1
    MinInt64 = -1 << 63
    MaxUint8 = 1<<8 - 1
    MaxUint16 = 1<<16 - 1
    MaxUint32 = 1<<32 - 1
    MaxUint64 = 1<<64 - 1
)

Tags:

标签列表
最新留言