カテゴリ: Go言語 更新日: 2026/01/01

Go言語の型変換(キャスト)の基本!int・floatなど型を安全に変換する方法

Go言語の型変換(キャスト)の基本!int・floatなど型を安全に変換する方法
Go言語の型変換(キャスト)の基本!int・floatなど型を安全に変換する方法

先生と生徒の会話形式で理解しよう

生徒

「Go言語って、数字の型を変えることはできますか?」

先生

「はい、Go言語では型変換(キャスト)を使って、例えば整数(int)を小数(float)に変えたりできます。」

生徒

「どうやって変換するんですか?難しくないですか?」

先生

「とても簡単です!では、基本から一緒に学んでみましょう!」

1. 型変換(キャスト)とは?

1. 型変換(キャスト)とは?
1. 型変換(キャスト)とは?

Go言語の型変換(キャスト)は、ある型の値(たとえば整数型int)を別の型(たとえば浮動小数点型float64)として扱えるようにする操作です。見た目は同じ「数字」でも、コンピューター内部では保存形式や表現できる範囲が異なるため、そのまま混ぜて計算はできません。

Go言語では暗黙的な変換は行われません。つまり、intfloat64を直接足し算しようとするとエラーになります。安全性と分かりやすさを守るため、変換先の型名を明示して「この値をこの型として扱ってね」と指示するのが基本ルールです。

書式はシンプルで、変換先の型名(値)の形で指定します。計算の意図がコードから読み取れるようになり、桁落ちや精度の勘違いを防ぐ助けにもなります。まずは小さな例で、どのように使うのか感覚をつかみましょう。

ミニサンプル:混在する数値を明示して足し算


package main

import "fmt"

func main() {
    var a int = 10
    var b float64 = 3.5

    // aはintなので、float64に明示的に変換してから加算する
    sum := float64(a) + b

    // 逆方向の変換:小数は切り捨てられてintになる
    c := int(b) // 3 になる

    fmt.Println(sum) // 13.5
    fmt.Println(c)   // 3
}

ポイントは次の三つです。①intfloat64は自動では混ざらない、②必要に応じてfloat64(a)のように変換して計算する、③intに変換すると小数部は切り捨てられる――この基本を押さえておけば、以降の具体例でも迷いにくくなります。

2. int から float64 に変換する方法

2. int から float64 に変換する方法
2. int から float64 に変換する方法

整数を小数として計算したいとき(平均値の計算や割合の算出など)は、intfloat64に変換します。見た目が同じ「10」でも、型が違うと計算結果や扱い方が変わるため、必要な場面で明示的に変換しておくと安心です。

基本:そのまま小数として扱う


var i int = 10
var f float64 = float64(i) // int → float64 に明示的に変換
fmt.Println(f)             // 10(小数として扱える)

float64(i)のように、変換先の型名(値)と書くだけです。以後は小数の演算や表示ができ、桁数を保ったままの計算が可能になります。

よくあるつまずき:平均値で整数同士を足して割る

整数同士の割り算は小数点以下が切り捨てられます。平均や割合を正確に出したいときは、割る前にどちらかをfloat64変換しましょう。


sum := 7   // int
n   := 2   // int

avgWrong := sum / n                 // 3 になる(小数が消える)
avg := float64(sum) / float64(n)    // 3.5(意図した小数の平均)

fmt.Println(avgWrong) // 3
fmt.Println(avg)      // 3.5

ポイントは「演算のに変換する」こと。あとから結果だけ変換しても、小数が失われていたら元に戻りません。

小さなコツ:どちらを変換すべき?

  • 割合や平均など小数が必要な計算は、少なくとも片方float64へ。
  • 定数の10.0のような小数リテラルと計算する場合は、整数側をfloat64に寄せると読みやすい。
  • 一時変数を作ると意図が伝わりやすく、後から読む人にも親切。

3. float64 から int に変換する方法

3. float64 から int に変換する方法
3. float64 から int に変換する方法

今度は、浮動小数点(小数)を整数に変換してみましょう。


var f float64 = 12.8
var i int = int(f)
fmt.Println(i)

このとき、小数点以下は切り捨てられます。つまり、12.8 は整数に変えると 12 になります。四捨五入されるわけではないので注意しましょう。


12

Go言語を基礎からスッキリ学びたい人や、 文法だけでなく「実用的な使い方」まで押さえたい人には、 定番の入門書がこちらです。

基礎からわかるGo言語をAmazonで見る

※ Amazon広告リンク

4. string型から数値への変換

4. string型から数値への変換
4. string型から数値への変換

文字列(string)から数値に変換したいときは、少しだけ特別な方法を使います。Go言語では、strconv(ストリング・コンバージョン)というパッケージを使って変換します。


import "strconv"

str := "123"
i, err := strconv.Atoi(str)
if err != nil {
    fmt.Println("変換できませんでした")
} else {
    fmt.Println(i)
}

Atoiというのは「ASCII to Integer(文字を整数に)」の略です。
数字として書かれた文字列を、正しいint型に変換できます。


123

5. 型変換で注意すること

5. 型変換で注意すること
5. 型変換で注意すること

型変換では、安全に変換できるかどうかがとても大切です。

  • 小数から整数に変えると、小数点以下は切り捨てられる
  • 文字列から数値に変えるときは、strconvを使い、エラー処理を忘れない
  • 変換できないデータは、そのままではプログラムが止まってしまうこともある

ですので、型変換を使うときは「このデータ、本当に変換していいのか?」と考えることが大切です。

まとめ

まとめ
まとめ

今回はGo言語でとても大切な概念である型変換(キャスト)について、できるだけ専門用語を少なくしながら丁寧に整理しました。じつは、プログラミングの世界では、ただの数字に見えても「整数なのか小数なのか」「文字なのか数値なのか」という違いで計算結果が変わったり、エラーに変わったりします。そこで、安全に扱うために、型をそろえてから計算するという考え方がとても重要になります。この考え方を理解しておくと、後々データ処理やAPIから受け取った値の計算などで混乱せず、落ち着いてコードを書くことができます。

型変換をするときの考え方

まず、Go言語では暗黙的な型変換をしないという決まりがあります。「勝手に変換してくれたら楽なのに」と思うかもしれませんが、逆に勝手に変わってしまうと、思っていない数字になってしまったり、小数が消えてしまったりといったトラブルが起きます。そのため、float64(値)int(値)のように、人間が意図をはっきり書くようになっています。読み返したときにも「なぜこの値を小数にしたいのか」「なぜ整数に変えたのか」がすぐ理解できるので、あとから見た人にも親切なコードになります。

整数と小数を変換する意味

整数と小数は似ているように見えて、計算の扱い方が少し違います。たとえば、平均値や割合を出すとき、整数同士を割り算すると小数が消えます。これは数学的に正しい答えを得たい場面では困ります。そこで、計算の前にfloat64へ変換することで、小数点のまま計算できます。逆に、商品個数やページ数など小数が不要な場面では、そのままint()で切り捨てるほうが自然です。つまり、用途に合わせて型を選ぶことで、より実用的で理解しやすいプログラムになるということです。

文字列を数値に変換する理由

画面入力や外部ファイルでは、数字が文字列として送られてくることがとても多いです。しかし、文字列のままでは計算できないので、strconvを使って数値に変換します。その際、入力が正しい数字でなければエラーになります。だからこそ、エラー処理が大切で、「もし変換できなかったらどうするか」を考えて書くことで、プログラムが途中で止まらないようにできます。仕事で使われるプログラムは、予期しない入力にも対応できる必要があるため、この考え方はとても重要です。

型変換の総まとめサンプル

ここまで学んだ内容を小さなサンプルで振り返ってみます。整数を小数で割ったり、小数を整数に変換したり、文字列を数値に変換したりといった基本的な処理を一つにまとめた例です。


package main

import (
    "fmt"
    "strconv"
)

func main() {
    a := 7
    b := 2
    avg := float64(a) / float64(b)
    fmt.Println(avg)

    price := 12.8
    fmt.Println(int(price))

    str := "100"
    num, err := strconv.Atoi(str)
    if err != nil {
        fmt.Println("変換できませんでした")
        return
    }
    fmt.Println(num)
}

この短いプログラムだけでも、Go言語の型変換がどれほど大切なのかがよくわかります。特に、整数の割り算で小数が消えたり、文字列がそのままでは計算できなかったりする部分は、初心者がつまずきやすい点です。ゆっくり復習しながら、実際に自分の手で書いて動かしてみると理解が深まります。

先生と生徒の振り返り会話

生徒

「最初は型変換って難しい印象でしたが、意外とシンプルなんですね。」

先生

「そうです。複雑に見えても、目的は『正しく扱える型にそろえる』だけです。数字のまま計算したいのか、整数で切り捨てたいのか、文字列から数値にしたいのかを考えれば迷いません。」

生徒

「これなら、平均の計算で小数が消えちゃう理由もわかります。先にfloat64に変えればよかったんですね。」

先生

「その通りです。意図をはっきり書くことで、読みやすいコードにもなります。次からは、計算する前に『どの型で扱うのが正しいのか』を意識してみましょう。」

生徒

「はい!今度は文字列を数値に変換する処理ももっと練習してみます。」

この記事を読んだ人からの質問

この記事を読んだ人からの質問
この記事を読んだ人からの質問

プログラミング初心者からのよくある疑問/質問を解決します

Go言語の型変換とは何ですか?初心者にもわかるように教えてください

Go言語の型変換とは、整数や小数、文字列などのデータを別の型として扱えるように変更することです。たとえば、整数をそのまま小数として計算したいときに型変換を行います。コンピューターは数字の型ごとに保存方法や扱い方が違うため、適切な型に変換することで正しく計算できます。初心者が最初につまずくことが多い部分ですが、考え方はとても単純で、必要な型に書き換えるだけです。
関連記事:
カテゴリの一覧へ
新着記事
New1
Kotlin
Kotlinの例外処理とキャンセルの連携を完全ガイド!初心者でもわかるCoroutineExceptionHandlerの使い方
New2
Go言語
Go言語のクロージャとは?関数内関数の活用例と仕組み
New3
Swift
Swiftでエラー原因を可視化!ログとトレースのベストプラクティスを初心者向けに解説
New4
Go言語
Go言語の関数パラメータ!値渡しと参照渡しの違いを理解しよう
人気記事
No.1
Java&Spring記事人気No1
Kotlin
KotlinのChannelでデータをやり取りする方法を完全ガイド!初心者にもわかる非同期通信の基本
No.2
Java&Spring記事人気No2
Go言語
Go言語でのDB接続情報を環境変数で管理する方法|初心者でも安全に設定
No.3
Java&Spring記事人気No3
Kotlin
Android Studioのインストール手順と初期設定を初心者向けに完全解説!
No.4
Java&Spring記事人気No4
Kotlin
Kotlinのビルド設定エラーと解決法まとめ!初心者向けGradleトラブル対処ガイド
No.5
Java&Spring記事人気No5
Kotlin
Gradleファイル(build.gradle.kts)の書き方と役割をやさしく解説!Kotlin初心者向け完全ガイド
No.6
Java&Spring記事人気No6
Kotlin
Kotlinでテキスト表示・編集!初心者でもわかるTextViewとEditTextの使い方
No.7
Java&Spring記事人気No7
Go言語
Go言語のgo.modファイル完全ガイド!初心者でもわかる仕組みと書き方
No.8
Java&Spring記事人気No8
Kotlin
Kotlin DSLとGroovy DSLの違いをやさしく解説!初心者でもわかるGradleスクリプトの使い分け

💻 作業効率アップに

ノートPCを縦置きしてデスクを広く。
省スペースで片づく定番スタンド

UGREEN 縦型スタンドをAmazonで見る

※ Amazon広告リンク