0.4.Math常用函数(2018.02.13)
尽量用 math 包里面的函数,少用 math/big 包里的方法。

1.math包的使用:
使用之前请先引入:
import (
    "fmt"
    "math"
)

1).Ceil:向上取整。
定义:
func Ceil(x float64) float64{}
用法:
fmt.Println(math.Ceil(3.14) //4
fmt.Println(math.Ceil(-3.14)//-3


2).Floor:向下取整。
定义:
func Floor(x float64) float64{}
用法:
fmt.Println(math.Floor(3.14))  //3
fmt.Println(math.Floor(-3.14)//-4


3).Max:取两个数的最大值。
定义:
func Max(x, y float64) float64{}
用法:
fmt.Println(math.Max(15)//5


4).Min:取两个数的最小值。
定义:
func Min(x, y float64) float64{}
用法:
fmt.Println(math.Min(15)//1


5).Mod:取余运算,等价于:x%y,余数符号跟x相同。
定义:
func Mod(x, y float64) float64{}
用法:
fmt.Println(math.Mod(103))  //1
fmt.Println(math.Mod(-103)//-1


6).Abs:返回x的绝对值。
定义:
func Abs(x float64) float64{}
用法:
fmt.Println(math.Abs(3.14))  //3.14
fmt.Println(math.Abs(-3.14)//3.14


7).Modf:分解f,以得到f的整数和小数部分。
定义:
func Modf(f float64) (int float64, frac float64){}
用法:
f1, f2 := math.Modf(3.14)
fmt.Printf("整数部分为:%f,小数部分为:%f \n", f1, f2) //整数部分为:3.000000,小数部分为:0.140000


8).Trunc:截取整数部分函数。
定义:
func Trunc(x float64) float64{}
用法:
fmt.Println(math.Trunc(3.14)//3


9).Dim:函数返回(x-y)和0中的最大值。
定义:
func Dim(x, y float64) float64{}
用法:
fmt.Println(math.Dim(103)) //7
fmt.Println(math.Dim(35) //0



2.math/big包的使用:
使用之前请先引入:
import (
    "fmt"
    "math/big"
)

1).NewInt:新建一个64位int数据。
定义:
func NewInt(x int64) *Int{}
用法:
fmt.Println(big.NewInt(7)//7


2).Int64:返回x的int64值。
定义:
func (x *Int) Int64() int64{}
用法:
i := big.NewInt(7)
fmt.Println(i.Int64()//7


3).String:将x转换为字符串返回。
定义:
func (x *Int) String() string{}
用法:
i := big.NewInt(7)
fmt.Println(i.String()//7


4).Abs:将z设为|x|并返回z。
定义:
func (z *Int) Abs(x *Int) *Int{}
用法:
z := big.NewInt(7)
x := big.NewInt(-3)
fmt.Println(z.Abs(x)//3
fmt.Println(z)        //3


5).Neg:将z设为-x并返回z。
定义:
func (z *Int) Neg(x *Int) *Int{}
用法:
z := big.NewInt(7)
x := big.NewInt(-3)
fmt.Println(z.Neg(x)//3
fmt.Println(z)        //3


6).Add:将z设为x + y并返回z。
定义:
func (z *Int) Add(x, y *Int) *Int{}
用法:
z := big.NewInt(7)
x := big.NewInt(2)
y := big.NewInt(1)
fmt.Println(z.Add(x,y)//3
fmt.Println(z)        //3


7).Sub:将z设为x - y并返回z。
定义:
func (z *Int) Sub(x, y *Int) *Int{}
用法:
z := big.NewInt(7)
x := big.NewInt(2)
y := big.NewInt(1)
fmt.Println(z.Sub(x,y)//1
fmt.Println(z)        //1


8).Mul:将z设为x * y并返回z。
定义:
func (z *Int) Mul(x, y *Int) *Int{}
用法:
z := big.NewInt(7)
x := big.NewInt(2)
y := big.NewInt(1)
fmt.Println(z.Mul(x,y)) //2
fmt.Println(z)        //2


9).Div:如果y != 0会将z设为x/y并返回z;如果y==0会panic。
定义:
func (z *Int) Div(x, y *Int) *Int{}
用法:
z := big.NewInt(7)
x := big.NewInt(2)
y := big.NewInt(1)
fmt.Println(z.Div(x,y)//2
fmt.Println(z)        //2


10).Mod:如果y != 0会将z设为x%y并返回z;如果y==0会panic。
定义:
func (z *Int) Mod(x, y *Int) *Int{}
用法:
z := big.NewInt(7)
x := big.NewInt(10)
y := big.NewInt(3)
fmt.Println(z.Mod(x,y)) //1
fmt.Println(z)        //1




3.伪随机数生成器:生成随机数。
使用之前请先引入:
import (
    "fmt"
    "math/rand"
    "time"
)

1).使用全局函数生成(推荐):
//资源会在程序每次运行时都产生确定的序列。如果需要每次运行产生不同的序列,应使用Seed函数进行初始化
rand.Seed(time.Now().Unix()) //用时间对资源进行初始化

fmt.Println(rand.Int())       // 非负的int随机值,返回值为int
fmt.Println(rand.Intn(100))   // [0,100)的随机值,返回值为int
fmt.Println(rand.Int31())     // 非负的31位int随机值,返回值为int32
fmt.Println(rand.Int31n(100)// [0,100)的随机值,返回值为int32
fmt.Println(rand.Int63())     // 非负的63位int随机值,返回值为int64
fmt.Println(rand.Int63n(100)// [0,100)的随机值,返回值为int64
fmt.Println(rand.Float32())   // 取值范围在[0.0, 1.0)的32位float随机值,返回值为float32
fmt.Println(rand.Float64())   // 取值范围在[0.0, 1.0)的64位float随机值,返回值为float64

// 如果要产生负数到正数的随机值,只需要将生成的随机数减去相应数值即可
fmt.Println(rand.Intn(100) - 50// [-50, 50)的随机值

2).使用Rand对象生成:
r := rand.New(rand.NewSource(time.Now().Unix()))

fmt.Println(r.Int())       // 非负的int随机值,返回值为int
fmt.Println(r.Intn(100))   // [0,100)的随机值,返回值为int
fmt.Println(r.Int31())     // 非负的31位int随机值,返回值为int32
fmt.Println(r.Int31n(100)// [0,100)的随机值,返回值为int32
fmt.Println(r.Int63())     // 非负的63位int随机值,返回值为int64
fmt.Println(r.Int63n(100)// [0,100)的随机值,返回值为int64
fmt.Println(r.Float32())   // 取值范围在[0.0, 1.0)的32位float随机值,返回值为float32
fmt.Println(r.Float64())   // 取值范围在[0.0, 1.0)的64位float随机值,返回值为float64

// 如果要产生负数到正数的随机值,只需要将生成的随机数减去相应数值即可
fmt.Println(r.Intn(100) - 50// [-50, 50)的随机值






阅读更多
个人分类: GoLang
想对作者说点什么? 我来说一句

常用函数连续傅里叶变换对照表

2018年04月15日 142KB 下载

PHP常用函数

2013年07月21日 74KB 下载

没有更多推荐了,返回首页

不良信息举报

0.4.Math常用函数(2018.02.13)

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭