go语言中的math库

雨点打透心脏的1/2处 2024-03-23 11:18 173阅读 0赞

go语言中的math库

首先没有编译器的可以通过这个网址进行敲代码:Lightly

简介

Go语言的 math 包提供了许多数学函数和常量,涵盖了各种数学运算。以下是一些常用函数的介绍:

Abs(x float64) float64:返回x的绝对值。

Ceil(x float64) float64:返回不小于x的最小整数值。

Cos(x float64) float64:返回x的余弦值(x以弧度为单位)。

Exp(x float64) float64:返回自然指数e的x次幂。

Floor(x float64) float64:返回不大于x的最大整数值。

Log(x float64) float64:返回x的自然对数。

Max(x, y float64) float64:返回x和y中的最大值。

Min(x, y float64) float64:返回x和y中的最小值。

Mod(x, y float64) float64:返回x除以y的余数。

Pow(x, y float64) float64:返回x的y次幂。

Round(x float64) float64:返回四舍五入到最接近的整数值。

Sin(x float64) float64:返回x的正弦值(x以弧度为单位)。

Sqrt(x float64) float64:返回x的平方根。

Tan(x float64) float64:返回x的正切值(x以弧度为单位)。

除此之外,math 包还包括一些常量,如:

math.E:自然常数e。

math.Pi:圆周率π。

math.Sqrt2:2的平方根。

math.SqrtE:自然常数e的平方根。

math.SqrtPi:圆周率π的平方根。

math.Ln2:2的自然对数。

math.Log2E:以2为底的自然对数e的倒数。

math.Log10E:以10为底的自然对数e的倒数。

math.MaxFloat64:float64类型能够表示的最大值。

math.SmallestNonzeroFloat64:float64类型中能够表示的最小非零值。

需要注意的是,由于浮点数计算可能存在舍入误差,因此在进行精确计算时需考虑这些误差。

例题

1. 求两点之间的距离

  1. package main
  2. import (
  3. "fmt"
  4. "math"
  5. )
  6. func distance(x1, y1, x2, y2 float64) float64 {
  7. a := x2 - x1
  8. b := y2 - y1
  9. return math.Sqrt(a*a + b*b)
  10. }
  11. func main() {
  12. fmt.Println(distance(0, 0, 3, 4))
  13. }

运行结果:
在这里插入图片描述

2. 求一个数组的平均值

  1. package main
  2. import (
  3. "fmt"
  4. "math"
  5. )
  6. func average(numbers []float64) float64 {
  7. total := 0.0
  8. for _, value := range numbers {
  9. total += value
  10. }
  11. return total / float64(len(numbers))
  12. }
  13. func main() {
  14. numbers := []float64{
  15. 98, 93, 77, 82, 83}
  16. fmt.Println("Average:", math.Round(average(numbers)*100)/100)
  17. }

运行结果:
在这里插入图片描述

3. 求三角形面积

  1. package main
  2. import (
  3. "fmt"
  4. "math"
  5. )
  6. func triangleArea(a, b, c float64) float64 {
  7. s := (a + b + c) / 2.0
  8. return math.Sqrt(s * (s - a) * (s - b) * (s - c))
  9. }
  10. func main() {
  11. a := 3.0
  12. b := 4.0
  13. c := 5.0
  14. fmt.Println("Triangle area:", triangleArea(a, b, c))
  15. }

运行结果:

在这里插入图片描述

4. 求正弦函数的值

  1. package main
  2. import (
  3. "fmt"
  4. "math"
  5. )
  6. func sin(x float64) float64 {
  7. return math.Sin(x)
  8. }
  9. func main() {
  10. x := math.Pi / 6
  11. fmt.Printf("sin(%v) = %v\n", x, sin(x))
  12. }

运行结果:
在这里插入图片描述

5. 求对数函数的值

  1. package main
  2. import (
  3. "fmt"
  4. "math"
  5. )
  6. func log(x float64) float64 {
  7. return math.Log10(x)
  8. }
  9. func main() {
  10. x := 100.0
  11. fmt.Printf("log(%v) = %v\n", x, log(x))
  12. }

运行结果:
在这里插入图片描述

发表评论

表情:
评论列表 (有 0 条评论,173人围观)

还没有评论,来说两句吧...

相关阅读

    相关 go语言time

    go语言time库 首先没有编译器的可以通过这个网址进行敲代码:[Lightly][] 简介 time包是Go语言标准库中的一个包,它提供了时间处理相关函数。ti

    相关 Go 编程实例【math

    阅读目录 说明 Sqrt 函数计算一个数的平方根 说明 math是Go标准库中的一个包,提供了数学运算相关的函数和常量。 它包含了很多常用的数

    相关 GO语言标准概览

    Go标准库包含了大量包,提供了丰富广泛的功能特性。这里提供了概览仅仅是有选择性的且非常简单。本文发表后,标准库的内容还可能继续增加,因此 建议大家最好是通过在线查阅库API或使