Golang的math库提供常用数学函数,包括Abs、Ceil、Floor、Round、Trunc等基本运算,Pow、Sqrt、Exp、Log等指数对数函数,Sin、Cos、Tan等三角函数,以及Pi、Inf、NaN等特殊值处理;避免NaN需验证输入并使用math.IsNaN检查;随机数生成使用math/rand(伪随机)或crypto/rand(加密安全);高精度计算可用math/big包的Int和Float类型。

Golang 的
math
解决方案
math
import "math"
基本运算:
立即学习“go语言免费学习笔记(深入)”;
math.Abs(x)
math.Ceil(x)
math.Floor(x)
math.Round(x)
math.Trunc(x)
package main
import (
"fmt"
"math"
)
func main() {
x := -3.14
fmt.Println("Abs:", math.Abs(x)) // Output: Abs: 3.14
fmt.Println("Ceil:", math.Ceil(x)) // Output: Ceil: -3
fmt.Println("Floor:", math.Floor(x)) // Output: Floor: -4
fmt.Println("Round:", math.Round(x)) // Output: Round: -3
fmt.Println("Trunc:", math.Trunc(x)) // Output: Trunc: -3
}指数和对数:
math.Pow(x, y)
math.Sqrt(x)
math.Exp(x)
math.Log(x)
math.Log10(x)
package main
import (
"fmt"
"math"
)
func main() {
x := 2.0
y := 3.0
fmt.Println("Pow:", math.Pow(x, y)) // Output: Pow: 8
fmt.Println("Sqrt:", math.Sqrt(x)) // Output: Sqrt: 1.4142135623730951
fmt.Println("Exp:", math.Exp(x)) // Output: Exp: 7.38905609893065
fmt.Println("Log:", math.Log(x)) // Output: Log: 0.6931471805599453
fmt.Println("Log10:", math.Log10(x)) // Output: Log10: 0.3010299956639812
}三角函数:
math.Sin(x)
math.Cos(x)
math.Tan(x)
math.Asin(x)
math.Acos(x)
math.Atan(x)
math.Atan2(y, x)
package main
import (
"fmt"
"math"
)
func main() {
angle := math.Pi / 4 // 45 degrees in radians
fmt.Println("Sin:", math.Sin(angle)) // Output: Sin: 0.7071067811865476
fmt.Println("Cos:", math.Cos(angle)) // Output: Cos: 0.7071067811865476
fmt.Println("Tan:", math.Tan(angle)) // Output: Tan: 0.9999999999999999
}特殊值:
math.Pi
math.E
math.Inf(sign int)
math.NaN()
package main
import (
"fmt"
"math"
)
func main() {
fmt.Println("Pi:", math.Pi) // Output: Pi: 3.141592653589793
fmt.Println("E:", math.E) // Output: E: 2.718281828459045
fmt.Println("Inf:", math.Inf(1)) // Output: Inf: +Inf
fmt.Println("NaN:", math.NaN()) // Output: NaN: NaN
}NaN(Not a Number)通常出现在以下几种情况:
math.Sqrt(-1)
0 / 0
math.Inf(1) / math.Inf(1)
math.Inf(1) - math.Inf(1)
避免 NaN 的方法:
动态WEB网站中的PHP和MySQL详细反映实际程序的需求,仔细地探讨外部数据的验证(例如信用卡卡号的格式)、用户登录以及如何使用模板建立网页的标准外观。动态WEB网站中的PHP和MySQL的内容不仅仅是这些。书中还提到如何串联JavaScript与PHP让用户操作时更快、更方便。还有正确处理用户输入错误的方法,让网站看起来更专业。另外还引入大量来自PEAR外挂函数库的强大功能,对常用的、强大的包
508
math.IsNaN()
math.IsNaN()
math
math/rand
crypto/rand
math/rand
package main
import (
"fmt"
"math/rand"
"time"
)
func main() {
// 设置随机数种子,保证每次运行结果不同
rand.Seed(time.Now().UnixNano())
// 生成 0 到 100 之间的随机整数
randomNumber := rand.Intn(100)
fmt.Println("Random Number:", randomNumber)
// 生成 0.0 到 1.0 之间的随机浮点数
randomFloat := rand.Float64()
fmt.Println("Random Float:", randomFloat)
}crypto/rand
package main
import (
"crypto/rand"
"fmt"
"math/big"
)
func main() {
// 生成一个 0 到 100 之间的安全随机整数
randomNumber, err := rand.Int(rand.Reader, big.NewInt(100))
if err != nil {
fmt.Println("Error generating random number:", err)
return
}
fmt.Println("Secure Random Number:", randomNumber)
}crypto/rand
Golang 的
math
float64
math/big
math/big
Int
Float
big.Int
package main
import (
"fmt"
"math/big"
)
func main() {
// 创建两个 big.Int 类型的变量
a := big.NewInt(1234567890)
b := big.NewInt(9876543210)
// 进行加法运算
sum := new(big.Int).Add(a, b)
fmt.Println("Sum:", sum) // Output: Sum: 11111111100
}big.Float
package main
import (
"fmt"
"math/big"
)
func main() {
// 创建两个 big.Float 类型的变量
a := new(big.Float).SetPrec(256).SetString("3.1415926535897932384626433832795")
b := new(big.Float).SetPrec(256).SetString("2.7182818284590452353602874713527")
// 进行乘法运算
product := new(big.Float).Mul(a, b)
fmt.Println("Product:", product)
}big.Float
SetPrec()
以上就是Golang math库常用数学函数操作方法的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号