導入
Go は「int と float64 を勝手に混ぜて計算する」ようなことを許しません。異なる型どうしの計算には、明示的な型変換が必要です。厳しく見えますが、意図しないバグを防ぐための設計です。
説明
package main
import "fmt"
func main() {
total := 10 // int
count := 3 // int
// 平均を小数で出したい → float64 に変換してから割る
average := float64(total) / float64(count)
fmt.Printf("平均: %.2f\n", average)
// 文字列と数値の連結もそのままではできない
age := 30
fmt.Println("年齢は " + fmt.Sprint(age) + " 歳")
}
float64(total)…intの値をfloat64に変換する。型名(値)の形が型変換です。intどうしの割り算は小数を切り捨てるため、10 / 3は3になってしまいます。先にfloat64へ変換するのがコツです。fmt.Sprint(age)… 値を文字列にして返す関数。数値を文字列に混ぜたいときに使います。
実行結果:
平均: 3.33
average を int どうしで割ると 3 になる
年齢は 30 歳
やってみよう
float64(total) / float64(count) の変換を外して total / count にすると、結果が 3.00 になってしまいます(小数点以下が切り捨てられるため)。「割り算の前に float64 へ」は Go でよくハマるポイントなので覚えておきましょう。