Caution

お使いのブラウザはJavaScriptが実行できない状態になっております。
当サイトはWebプログラミングの情報サイトの為、
JavaScriptが実行できない環境では正しいコンテンツが提供出来ません。
JavaScriptが実行可能な状態でご閲覧頂くようお願い申し上げます。

  1. トップページ
  2. Go辞典
  3. math パッケージ

math パッケージ

Goの『math』パッケージには絶対値・平方根・三角関数・対数などの数学関数が揃っています。『math.Abs()』『math.Sqrt()』『math.Floor()』『math.Ceil()』などがよく使われます。

構文
import "math"

// 絶対値を返します。
x := math.Abs(-3.14)   // 3.14

// 平方根を返します。
s := math.Sqrt(9.0)    // 3.0

// 切り捨て・切り上げ・四捨五入を行います。
f := math.Floor(3.7)   // 3.0
c := math.Ceil(3.2)    // 4.0
r := math.Round(3.5)   // 4.0

// 最大値・最小値を返します。
big := math.Max(5.0, 3.0)  // 5.0
small := math.Min(5.0, 3.0) // 3.0

// 定数を使います。
pi := math.Pi    // 3.141592653589793
e  := math.E     // 2.718281828459045
関数一覧
関数概要
math.Abs(x)xの絶対値を返します。
math.Sqrt(x)xの平方根を返します。
math.Pow(x, y)x の y 乗を返します。
math.Floor(x)xを切り捨てた最大の整数を返します。
math.Ceil(x)xを切り上げた最小の整数を返します。
math.Round(x)xを四捨五入した整数を返します。
math.Max(x, y)xとyの大きい方を返します。
math.Min(x, y)xとyの小さい方を返します。
math.Log(x)xの自然対数を返します。
math.Log2(x)xの2を底とする対数を返します。
math.Log10(x)xの常用対数を返します。
math.Exp(x)e の x 乗を返します。
math.Sin(x) / Cos(x) / Tan(x)三角関数(引数はラジアン)を返します。
math.Inf(sign)正(sign=1)または負(sign=-1)の無限大を返します。
math.IsNaN(x)xがNaN(非数)かどうかを返します。
math.Pi / math.E円周率・ネイピア数の定数です。
サンプルコード
package main

import (
    "fmt"
    "math"
)

func main() {
    // 基本的な数学関数の使用例です。
    fmt.Println("--- 絶対値・平方根・累乗 ---")
    fmt.Println("Abs(-7.5):", math.Abs(-7.5))
    fmt.Println("Sqrt(16):", math.Sqrt(16))
    fmt.Println("Pow(2, 10):", math.Pow(2, 10))   // 2の10乗

    fmt.Println()

    // 丸め処理の比較です。
    fmt.Println("--- 丸め処理 ---")
    x := 3.567
    fmt.Printf("元の値: %.3f\n", x)
    fmt.Printf("Floor: %.1f\n", math.Floor(x))   // 切り捨て
    fmt.Printf("Ceil:  %.1f\n", math.Ceil(x))    // 切り上げ
    fmt.Printf("Round: %.1f\n", math.Round(x))   // 四捨五入

    fmt.Println()

    // 最大・最小の比較です。
    fmt.Println("--- 最大・最小 ---")
    fmt.Printf("Max(12.5, 7.3): %.1f\n", math.Max(12.5, 7.3))
    fmt.Printf("Min(12.5, 7.3): %.1f\n", math.Min(12.5, 7.3))

    fmt.Println()

    // 対数・指数関数です。
    fmt.Println("--- 対数・指数 ---")
    fmt.Printf("Log(math.E): %.4f\n", math.Log(math.E))  // 自然対数
    fmt.Printf("Log2(8): %.1f\n", math.Log2(8))           // 2を底
    fmt.Printf("Log10(1000): %.1f\n", math.Log10(1000))   // 常用対数
    fmt.Printf("Exp(1): %.6f\n", math.Exp(1))             // e^1

    fmt.Println()

    // 三角関数(ラジアン単位)です。
    fmt.Println("--- 三角関数 ---")
    fmt.Printf("Sin(Pi/2): %.4f\n", math.Sin(math.Pi/2))  // 1.0
    fmt.Printf("Cos(Pi):   %.4f\n", math.Cos(math.Pi))    // -1.0

    fmt.Println()

    // 定数の確認です。
    fmt.Println("--- 定数 ---")
    fmt.Printf("Pi: %.15f\n", math.Pi)
    fmt.Printf("E:  %.15f\n", math.E)
    fmt.Println("MaxFloat64:", math.MaxFloat64)
    fmt.Println("MaxInt:", math.MaxInt)
}
概要

『math』パッケージの全関数は引数・戻り値ともに『float64』型です。整数値を渡す場合は自動的に変換されますが、戻り値の整数部分が必要な場合は『int(math.Floor(x))』のように明示的にキャストしてください。

負の数の平方根(math.Sqrt(-1))はNaNを返します。NaNかどうかは math.IsNaN()で確認できます。

乱数生成は『math/rand パッケージ』を参照してください。

記事の間違いや著作権の侵害等ございましたらお手数ですがまでご連絡頂ければ幸いです。