Go | 基本數學運算計算函式
💬 簡介
數值計算是每個程式語言的基礎功能之一,Go 提供了直觀的數學運算符與標準庫 math
,適用於處理數值型別的基本運算和進階運算。
本篇文章將以簡單實例介紹 Go 中的 基本數學運算符 及 常用的 math
函式,幫助快速掌握基礎數學操作。
圖片來源:Gophers(地鼠造型的原創者為 Renee French)
🔢 基本數學運算符
以下是 Go 中的基本數學運算符:
運算符 | 名稱 | 範例 | 說明 |
---|---|---|---|
+ |
加法 | a + b |
計算兩數之和 |
- |
減法 | a - b |
計算兩數之差 |
* |
乘法 | a * b |
計算兩數相乘結果 |
/ |
除法 | a / b |
計算兩數相除結果 |
% |
餘數 | a % b |
計算整數相除後餘數 |
- 範例:基本運算
1
2
3
4
5
6
7
8
9
10
11
12package main
import "fmt"
func main() {
a, b := 10, 3
fmt.Println("加法:", a+b) // 輸出:13
fmt.Println("減法:", a-b) // 輸出:7
fmt.Println("乘法:", a*b) // 輸出:30
fmt.Println("整數除法:", a/b) // 輸出:3
fmt.Println("取餘數:", a%b) // 輸出:1
}📝在這個範例中,對基本數值運算的支援。需要注意,整數除法會自動取整,如果需要浮點數結果,請確保操作數為浮點型別,例如
10.0 / 3.0
。
📊 運算符的優先順序
運算符的優先順序遵循以下規則:
括號:
()
優先計算括號內的運算。乘法/除法/餘數:
*
,/
,%
的優先級高於加減法。加法/減法:
+
,-
的優先級低於乘除法。從左至右計算:當運算符優先級相同時,按照表達式從左到右計算。
範例:運算優先順序
1
2
3
4
5
6
7
8
9
10
11package main
import "fmt"
func main() {
result := 10 + 3*2 // 先計算 3*2,再加上 10
fmt.Println("結果:", result) // 輸出:16
result = (10 + 3) * 2 // 先計算括號內,再乘以 2
fmt.Println("結果:", result) // 輸出:26
}📝在這個範例中,運算符的優先順序影響了計算結果。要更改計算的順序,可以使用括號強制執行特定的計算邏輯。例如,
(10 + 3) * 2
與10 + 3 * 2
的結果不同。
🌐 浮點數運算
Go 中的浮點數類型有兩種:
float32
: 單精度浮點數float64
: 雙精度浮點數,精度較高
在進行浮點數運算時,可能需要用到標準庫 math
提供的函式。
- 範例:浮點數運算
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16package main
import (
"fmt"
"math"
)
func main() {
x, y := 5.0, 2.0
fmt.Println("加法:", x+y) // 輸出:7
fmt.Println("減法:", x-y) // 輸出:3
fmt.Println("乘法:", x*y) // 輸出:10
fmt.Println("除法:", x/y) // 輸出:2.5
fmt.Println("平方根:", math.Sqrt(x)) // 輸出:約 2.236
}📝在這個範例中,我們使用了內建的浮點數型別
float64
,並進行基本的浮點數運算。浮點數計算結果可能會有精度問題,例如非常小的誤差。若需要高精度的計算,建議了解相關數值運算的限制。
🧰 常用浮點數函式
函式 | 說明 |
---|---|
math.Sqrt(x) |
返回 x 的平方根 |
math.Pow(x, y) |
返回 x 的 y 次方 |
math.Abs(x) |
返回 x 的絕對值 |
math.Round(x) |
將 x 四捨五入到最近整數 |
math.Floor(x) |
將 x 向下取整 |
math.Ceil(x) |
將 x 向上取整 |
- 範例:浮點數相關函式
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15package main
import (
"fmt"
"math"
)
func main() {
value := -3.7
fmt.Println("絕對值:", math.Abs(value)) // 輸出:3.7
fmt.Println("向下取整:", math.Floor(value)) // 輸出:-4
fmt.Println("向上取整:", math.Ceil(value)) // 輸出:-3
fmt.Println("四捨五入:", math.Round(value)) // 輸出:-4
}📝在這個範例中,我們介紹了
math
標準庫提供的幾個常用函式,例如math.Abs()
計算絕對值,math.Floor()
和math.Ceil()
處理向下或向上取整,math.Round()
則用於四捨五入。這些函式非常適合處理需要精確控制的浮點數計算邏輯。
🎯總結
基本數學運算符、運算符優先順序、浮點數運算 及 常用 math
函式。這些工具能夠滿足日常開發中的數值計算需求。
最後建議回顧一下 Go | 菜鳥教學 目錄,了解其章節內容。
註:以上參考了
Go