Like Share Discussion Bookmark Smile

J.J. Huang   2025-01-21   Getting Started Golang 01.基本型別   瀏覽次數:次   DMCA.com Protection Status

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
    12
    package 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
    11
    package 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) * 210 + 3 * 2 的結果不同。


🌐 浮點數運算

Go 中的浮點數類型有兩種:

  • float32: 單精度浮點數
  • float64: 雙精度浮點數,精度較高

在進行浮點數運算時,可能需要用到標準庫 math 提供的函式。

  • 範例:浮點數運算
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    package 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
    15
    package 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