カテゴリ: Go言語 更新日: 2025/12/11

Go言語の文字列を数値に変換する方法!初心者でもわかるstrconvパッケージの基本

Go言語の文字列を数値に変換する方法(strconvパッケージの基本)
Go言語の文字列を数値に変換する方法(strconvパッケージの基本)

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

生徒

「Go言語で文字列を数値に変えることってできますか?」

先生

「はい、できます。Go言語にはstrconv(ストラコンブと読みます)というパッケージがあって、それを使えば文字列を整数や小数に変換することができますよ。」

生徒

「例えば『123』という文字列を数字の123に変換できるってことですか?」

先生

「そうです。その変換をしないと、計算ができないのでとても大事なんです。では基本から見ていきましょう!」

1. なぜ文字列を数値に変換する必要があるのか?

1. なぜ文字列を数値に変換する必要があるのか?
1. なぜ文字列を数値に変換する必要があるのか?

プログラミングをしていると、数字に見える情報が実は「文字列」として扱われていることがよくあります。例えば、ユーザーが入力した「100」というデータは見た目は数字ですが、コンピュータの中では文字として保存されています。このままでは足し算や掛け算などの計算ができません。

そこで、文字列を数値に変換する必要があります。Go言語では、この役割を果たすのがstrconvパッケージです。strconvは「string convert」の略で、その名の通り文字列を数値などに変換するための便利な機能が揃っています。

2. strconv.Atoiで文字列を整数に変換する

2. strconv.Atoiで文字列を整数に変換する
2. strconv.Atoiで文字列を整数に変換する

strconv.Atoiは、文字列を整数(int型)に変換する関数です。「Atoi」は「ASCII to integer」の略です。つまり、文字列(ASCII文字列)を整数に変換するイメージです。


package main

import (
    "fmt"
    "strconv"
)

func main() {
    str := "123"
    num, err := strconv.Atoi(str)
    if err != nil {
        fmt.Println("変換エラー:", err)
    } else {
        fmt.Println("数値に変換成功:", num)
    }
}

数値に変換成功: 123

ここでは「123」という文字列が整数123に変換されました。もし「abc」など数値にできない文字を入れると、エラーになります。

3. strconv.ParseIntで大きな整数を扱う

3. strconv.ParseIntで大きな整数を扱う
3. strconv.ParseIntで大きな整数を扱う

strconv.ParseIntは、より細かく整数の変換をコントロールできます。例えば、基数(10進数や16進数など)やビット数(int64など)を指定できます。日常的にはAtoiで十分ですが、大きな数値を扱うときはこちらを使います。


package main

import (
    "fmt"
    "strconv"
)

func main() {
    str := "1234567890"
    num, err := strconv.ParseInt(str, 10, 64)
    if err != nil {
        fmt.Println("変換エラー:", err)
    } else {
        fmt.Println("int64に変換成功:", num)
    }
}

int64に変換成功: 1234567890

4. strconv.ParseFloatで小数を扱う

4. strconv.ParseFloatで小数を扱う
4. strconv.ParseFloatで小数を扱う

小数を扱いたいときはstrconv.ParseFloatを使います。例えば「3.14」という文字列を小数点を含む数値に変換できます。


package main

import (
    "fmt"
    "strconv"
)

func main() {
    str := "3.14"
    num, err := strconv.ParseFloat(str, 64)
    if err != nil {
        fmt.Println("変換エラー:", err)
    } else {
        fmt.Println("float64に変換成功:", num)
    }
}

float64に変換成功: 3.14

このように、浮動小数点数(float64)として正しく扱うことができます。小数を使うときは必ずParseFloatを選びましょう。

5. 文字列から数値への変換でよくあるエラー

5. 文字列から数値への変換でよくあるエラー
5. 文字列から数値への変換でよくあるエラー

文字列を数値に変換するときに気をつけたいのは「変換できない文字が含まれている場合」です。例えば「123」(全角数字)や「100円」のように数字以外が含まれる文字列はエラーになります。

エラー処理をきちんと書いておくことで、プログラムが途中で止まらずに安全に動作します。エラーが発生したときにメッセージを出すことで、ユーザーに「入力が間違っている」と知らせることができます。

6. 数値から文字列に戻すには?

6. 数値から文字列に戻すには?
6. 数値から文字列に戻すには?

ここまで文字列から数値に変換する方法を学びましたが、逆に数値を文字列に戻すこともできます。そのときはstrconv.Itoa(Integer to ASCII)を使います。


package main

import (
    "fmt"
    "strconv"
)

func main() {
    num := 456
    str := strconv.Itoa(num)
    fmt.Println("文字列に変換:", str)
}

文字列に変換: 456

このように、数値と文字列を相互に変換できると、入力や出力を柔軟に扱うことができるようになります。

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

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

※ Amazon広告リンク

まとめ

まとめ
まとめ

ここまで、Go言語で文字列を数値に変換する方法を中心に、strconvパッケージの基本的な使い方を学んできました。 プログラムを作るとき、ユーザーが入力した値や外部から読み込んだデータは、見た目が数字でも実際には「文字列」として扱われていることが多く、そのままでは計算に使えません。 そのため、文字列を正しい数値型に変換する仕組みは、アプリケーション開発のあらゆる場面で欠かせない重要な技術です。

特にstrconv.Atoiは初心者でも使いやすく、エラーチェックをしながら安全に整数へ変換できます。 また、より大きな整数や細かい制御が必要な場合にはstrconv.ParseInt、小数を扱うときはstrconv.ParseFloatといった関数を使い分けることで、より柔軟な処理が可能になります。 さらに逆方向の変換であるstrconv.Itoaも覚えておくと、数値を文字列として画面表示に使えるため、実践的な場面で役立ちます。

文字列と数値の相互変換は、一見すると単純な機能のようですが、ユーザー入力や外部API、設定ファイルの読み込みなど、多くの箇所で登場します。 例えばフォームから送られてくる値は必ず文字列ですし、ファイルやネットワークを通して取得するデータも文字列として扱われることが一般的です。 こうした状況で適切に変換できると、プログラムの安定性と信頼性が大きく向上します。

以下に、今回の内容をより深く理解するための簡単なまとめサンプルを紹介します。 複数の文字列を順番に処理して、整数・小数・変換できない文字列を適切に分類する例です。 初心者でも動作がイメージしやすいように、シンプルな書き方で整理しています。

まとめとしてのサンプルプログラム

package main

import (
    "fmt"
    "strconv"
)

func main() {
    values := []string{"42", "3.14", "abc", "100"}

    for _, v := range values {
        if num, err := strconv.Atoi(v); err == nil {
            fmt.Println(v, "→ 整数に変換成功:", num)
            continue
        }

        if f, err := strconv.ParseFloat(v, 64); err == nil {
            fmt.Println(v, "→ 小数に変換成功:", f)
            continue
        }

        fmt.Println(v, "→ 数値に変換できません")
    }
}

このサンプルでは、複数の文字列を一つずつチェックし、整数として変換できるか、小数として変換できるか、あるいは変換不可能かを判定しています。 こうした仕組みを取り入れることで、実際の入力処理やデータ検証をより丁寧に行えるようになります。 strconvの便利さと柔軟性を感じられる良い例といえるでしょう。

文字列と数値の変換は、Go言語を使ううえで避けて通れない基本であり、同時にプログラムの安全性と安定性を支える重要なテーマです。 正しく変換を行うことは、データを正確に扱うための第一歩でもあります。 今日学んだ内容を活用しながら、さまざまな入力処理やデータ検証の場面で応用してみてください。

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

生徒

「先生、文字列と数値の変換ってよく使うんですね。最初は難しく感じましたが、例を見たらだいぶ理解できました!」

先生

「その調子です。特にユーザー入力や外部データは文字列で届くことが多いから、今回の知識はかなり実践的ですよ。」

生徒

「なるほど。エラー処理も大事なんですね。変換できなかったときに気づけないと、後でバグになりそうです。」

先生

「その通り。エラーを丁寧に扱えるようになると、プログラムの質が大きく上がります。まずはAtoiParseIntParseFloatItoaの基本を確実に身につけましょう。」

生徒

「はい!次は入力フォームの処理やAPIのデータ処理で使ってみたいです!」

関連セミナーのご案内

【超入門】ゼロから始めるGo言語プログラミング:最速で「動くアプリ」を作るマンツーマン指導

「プログラミングの仕組み」が根本からわかる。Go言語でバックエンド開発の第一歩を。

本講座を受講することで、単なる文法の暗記ではなく、「プログラムがコンピュータの中でどう動いているか」という本質的な理解につながります。シンプルながら強力なGo言語(Golang)を通じて、現代のバックエンドエンジニアに求められる基礎体力を最短距離で身につけます。

具体的な開発内容と環境

【つくるもの】
ターミナル(黒い画面)上で動作する「対話型計算プログラム」や、データを整理して表示する「ミニ・ツール」をゼロから作成します。自分の書いたコードが形になる感動を体験してください。

【開発環境】
プロの現場でシェアNo.1のVisual Studio Code (VS Code)を使用します。インストールから日本語化、Go言語用の拡張機能設定まで、現場基準の環境を一緒に構築します。

この60分で得られる3つの理解

1. 環境構築の完全な理解

「なぜ動くのか」という設定の仕組みを理解し、今後の独学で詰まらない土台を作ります。

2. Go言語の基本構造(変数・型)

データの種類やメモリの概念など、他言語にも通じるプログラミングの本質を学びます。

3. 読みやすいコードの書き方

ただ動くだけでなく、誰が見ても分かりやすい「綺麗なコード」を書くための考え方を伝授します。

※本講座は、将来的にバックエンドエンジニアクラウドインフラに興味がある未経験者のためのエントリー講座です。マンツーマン形式により、あなたの理解度に合わせて進行します。

セミナー画像

初めてのGo言語を一緒に学びましょう!

カテゴリの一覧へ
新着記事
New1
Go言語
Go言語のwhile的なforループの使い方!条件式ループの基本を解説
New2
Go言語
Go言語プログラムの実行方法まとめ!VSCode・ターミナルでの実行手順を解説
New3
Swift
Swift意味とは?プログラミング言語・金融・鳥の違いを徹底解説
New4
Swift
Swift 戻り値の扱い方と複数戻り値の返し方|初心者でも分かる関数の基本
人気記事
No.1
Java&Spring記事人気No1
Go言語
Go言語でリダイレクト処理を行う方法(http.Redirect)を初心者向けに解説
No.2
Java&Spring記事人気No2
Swift
Swift開発環境の構築方法を徹底解説!Xcode・Windows・Linux対応
No.3
Java&Spring記事人気No3
Kotlin
Android Studioのインストール手順と初期設定を初心者向けに完全解説!
No.4
Java&Spring記事人気No4
Kotlin
Gradleファイル(build.gradle.kts)の書き方と役割をやさしく解説!Kotlin初心者向け完全ガイド
No.5
Java&Spring記事人気No5
Go言語
Go言語のgo.modファイル完全ガイド!初心者でもわかる仕組みと書き方
No.6
Java&Spring記事人気No6
Go言語
Go言語で条件式を1行で書くコツ!三項演算子の代替と短縮記法
No.7
Java&Spring記事人気No7
Swift
Swift Playgroundの使い方を完全解説!初心者に最適な学習環境の始め方
No.8
Java&Spring記事人気No8
Kotlin
Kotlinのログ出力方法を完全ガイド!LogcatとTimberでトラブルシューティング