コンテンツにスキップ

Go/算術演算と数学関数

出典: フリー教科書『ウィキブックス(Wikibooks)』
< Go

Go言語における算術演算と数学関数について、基本的な使い方と注意点、そしてコード例を用いて解説します。

算術演算

[編集]

Go言語では、他のプログラミング言語と同様に、四則演算(加減乗除)と剰余演算(%)が可能です。また、Goは型安全であり、異なる型間の暗黙的な型変換は行いません。

数値の型
  • 整数型: int, uint, int8, uint8, int16, uint16, int32, uint32, int64, uint64
  • 浮動小数点型: float32, float64
  • 複素数型: complex64, complex128
数値リテラルの例
5      // int型
3.14   // float64型
演算の例
package main

import "fmt"

func main() {
    // 整数間の演算
    fmt.Println(5 + 3)    // 出力: 8
    fmt.Println(5 - 3)    // 出力: 2
    fmt.Println(5 * 3)    // 出力: 15
    fmt.Println(5 / 3)    // 出力: 1 (整数同士の除算は切り捨て)
    fmt.Println(5 % 3)    // 出力: 2

    // 浮動小数点数の演算
    fmt.Println(5.0 / 3.0) // 出力: 1.6666666666666667
}
型の違いによる演算
  • 数値リテラル: 片方が浮動小数点数の場合、もう片方も浮動小数点数に暗黙的に変換されます。
  • 変数: 変数の型が異なる場合は、明示的な型変換が必要になります。

注意: 整数同士の除算は小数点以下を切り捨てた結果になります。浮動小数点数を含む場合のみ、実数として計算されます。

数学関数

[編集]

Go言語では、mathパッケージで様々な数学関数が提供されています。これにより、平方根や指数関数、対数、三角関数などが簡単に使用できます。

三角関数
package main

import (
    "fmt"
    "math"
)

func main() {
    fmt.Println(math.Cos(math.Pi)) // 出力: -1
    fmt.Println(math.Sin(math.Pi / 2)) // 出力: 1
}
注意
  • mathパッケージの関数は、引数と戻り値の型が float64 です。整数を直接渡すとコンパイルエラーになるため、適切に型変換する必要があります。
  • 三角関数の角度はラジアンで指定します。度を使用する場合は変換が必要です (例: 角度 * math.Pi / 180)。
その他の関数
  • math.Sqrt: 平方根
  • math.Pow: 累乗
  • math.Exp: 指数関数 (eのx乗)
  • math.Log: 自然対数
  • math.Log10: 常用対数
  • math.Abs: 絶対値
  • math.Round, math.Floor, math.Ceil: 丸め処理
package main

import (
    "fmt"
    "math"
)

func main() {
    a := 9.0
    fmt.Println("Square root:", math.Sqrt(a)) // 平方根: 3
    fmt.Println("Power:", math.Pow(2, 3))     // 累乗: 8
    fmt.Println("Absolute:", math.Abs(-5))    // 絶対値: 5
}

まとめ

[編集]
  • Go言語の算術演算は、他の言語と同様ですが、型の扱いには注意が必要です。
  • mathパッケージを利用することで、様々な数学関数を手軽に利用できます。特に、ラジアン表記や浮動小数点型である点に注意してください。