Go語言標準庫中math模塊詳細功能介紹與示例代碼
Go語言的 math
模塊提供了豐富的數(shù)學函數(shù)和常量,涵蓋基本運算、三角函數(shù)、指數(shù)、對數(shù)、取整、特殊值等。以下是核心方法及示例說明:
1. 基本數(shù)學運算
math.Abs
取絕對值(僅 float64
)。
fmt.Println(math.Abs(-3.5)) // 輸出: 3.5 fmt.Println(math.Abs(4)) // 錯誤!需用 math.Abs(4.0)
math.Mod 和 math.Remainder
Mod
:取余數(shù)(符號與除數(shù)相同)。Remainder
:IEEE 754 標準余數(shù)(符號與被除數(shù)相同)。
fmt.Println(math.Mod(10, 3)) // 輸出: 1 fmt.Println(math.Remainder(10, 3)) // 輸出: 1 fmt.Println(math.Mod(-10, 3)) // 輸出: -1 fmt.Println(math.Remainder(-10, 3)) // 輸出: -1
math.Cbrt 和 math.Sqrt
立方根和平方根。
fmt.Println(math.Sqrt(16)) // 輸出: 4 fmt.Println(math.Cbrt(27)) // 輸出: 3
2. 三角函數(shù)
所有函數(shù)參數(shù)為弧度(非角度)。
math.Sin、math.Cos、math.Tan
rad := math.Pi / 2 fmt.Println(math.Sin(rad)) // 輸出: 1(近似值) fmt.Println(math.Cos(rad)) // 輸出: 6.123e-17(接近0)
math.Asin、math.Acos、math.Atan
反三角函數(shù)(返回弧度)。
fmt.Println(math.Asin(1)) // 輸出: 1.5708(π/2)
3. 指數(shù)與對數(shù)
math.Exp 和 math.Log
自然指數(shù)和對數(shù)。
fmt.Println(math.Exp(2)) // 輸出: ~7.389(e2) fmt.Println(math.Log(7.389)) // 輸出: ~2
math.Pow 和 math.Pow10
冪運算。
fmt.Println(math.Pow(2, 3)) // 輸出: 8 fmt.Println(math.Pow10(3)) // 輸出: 1000
math.Log10 和 math.Log2
以10或2為底的對數(shù)。
fmt.Println(math.Log10(1000)) // 輸出: 3 fmt.Println(math.Log2(8)) // 輸出: 3
4. 取整與截斷
math.Ceil 和 math.Floor
向上和向下取整。
fmt.Println(math.Ceil(3.2)) // 輸出: 4 fmt.Println(math.Floor(3.9)) // 輸出: 3
math.Trunc
直接截斷小數(shù)部分。
fmt.Println(math.Trunc(3.9)) // 輸出: 3
math.Round 和 math.RoundToEven
四舍五入(RoundToEven
向最近的偶數(shù)舍入)。
fmt.Println(math.Round(2.5)) // 輸出: 3 fmt.Println(math.RoundToEven(2.5)) // 輸出: 2
5. 最大值與最小值
math.Max 和 math.Min
返回兩個 float64
值的最大或最小值。
fmt.Println(math.Max(3, 5)) // 輸出: 5 fmt.Println(math.Min(3, 5)) // 輸出: 3
6. 特殊值處理
math.IsNaN 和 math.IsInf
檢查是否為非數(shù)值或無窮大。
val := math.Log(-1) // 生成 NaN fmt.Println(math.IsNaN(val)) // 輸出: true fmt.Println(math.IsInf(1/math.Inf(1), 0)) // 檢查是否無窮大
math.Inf 和 math.NaN
生成無窮大或非數(shù)值。
posInf := math.Inf(1) // 正無窮 negInf := math.Inf(-1) // 負無窮 nan := math.NaN()
7. 特殊函數(shù)
math.Hypot
計算直角三角形的斜邊長度。
fmt.Println(math.Hypot(3, 4)) // 輸出: 5
math.Gamma 和 math.Erf
伽馬函數(shù)和誤差函數(shù)。
fmt.Println(math.Gamma(5)) // 輸出: 24(4!) fmt.Println(math.Erf(1)) // 輸出: ~0.8427
8. 數(shù)學常量
常用常量
fmt.Println(math.Pi) // 輸出: 3.141592653589793 fmt.Println(math.E) // 輸出: 2.718281828459045 fmt.Println(math.Phi) // 輸出: 1.618033988749895(黃金分割)
總結
- 核心功能:
- 基礎運算:
Abs
,Mod
,Sqrt
,Pow
- 三角函數(shù):
Sin
,Cos
,Asin
- 指數(shù)對數(shù):
Exp
,Log
,Log10
- 取整處理:
Ceil
,Floor
,Round
- 特殊值:
NaN
,Inf
,IsNaN
- 常量:
Pi
,E
- 基礎運算:
- 注意事項:
- 所有函數(shù)操作
float64
類型(需顯式轉換其他類型)。 - 三角函數(shù)參數(shù)為弧度(需將角度轉換為弧度:
rad = degrees * π / 180
)。 - 處理特殊值(如
NaN
)時需用math.IsNaN
判斷,不可直接比較。
- 所有函數(shù)操作
到此這篇關于Go語言標準庫中math模塊詳細功能介紹與示例代碼的文章就介紹到這了,更多相關Go語言標準庫math模塊介紹內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!