カテゴリ: Go言語 更新日: 2025/10/22

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言語のスライス・マップ・配列をまとめて比較してみよう!初心者でもわかる使い分けの基本
Go言語の条件分岐の見やすい書き方を徹底解説!初心者でもわかるif文の使い方
Go言語とは何か?初心者向けに特徴・できること・インストール手順までやさしく解説
人気記事
No.1
Java&Spring記事人気No1
Swift Playgroundの使い方を完全解説!初心者に最適な学習環境の始め方
No.2
Java&Spring記事人気No2
Go言語で条件式を1行で書くコツ!三項演算子の代替と短縮記法
No.3
Java&Spring記事人気No3
Swift開発環境の構築方法を徹底解説!Xcode・Windows・Linux対応
No.4
Java&Spring記事人気No4
Kotlinのデータクラス(data class)とは?便利な特徴と使い方を初心者向けにやさしく解説!