Go言語の数値を文字列に変換する方法と注意点!初心者でもわかるstrconvパッケージ活用法
生徒
「Go言語で数字を文字列に変える方法ってありますか?」
先生
「はい、あります。Go言語ではstrconvパッケージを使うと簡単に数値を文字列に変換できます。」
生徒
「例えば整数の123を文字列にしたいときはどうすればいいですか?」
先生
「その場合はstrconv.Itoaという関数を使います。ItoaはInteger to ASCIIの略で、整数を文字列に変換する意味です。」
1. strconv.Itoaで整数を文字列に変換
Go言語で整数を文字列に変換する最も簡単な方法はstrconv.Itoaです。例えば、数値をそのまま画面に表示したいときや、文字列としてファイルに書き込みたいときに便利です。
package main
import (
"fmt"
"strconv"
)
func main() {
num := 123
str := strconv.Itoa(num)
fmt.Println("文字列に変換:", str)
}
文字列に変換: 123
このように、整数123が文字列として扱えるようになりました。文字列になっているので、連結やファイル書き込みにもそのまま使えます。
2. strconv.FormatIntで大きな整数を文字列に変換
大きな整数や符号付き整数を文字列に変換したいときはstrconv.FormatIntを使います。基数(2進数や16進数など)も指定できるので、柔軟に文字列化できます。
package main
import (
"fmt"
"strconv"
)
func main() {
num := int64(9876543210)
str := strconv.FormatInt(num, 10) // 10進数に変換
fmt.Println("文字列に変換:", str)
}
文字列に変換: 9876543210
ここで指定する「10」は10進数を意味します。2なら2進数、16なら16進数として文字列化できます。
3. strconv.FormatFloatで小数を文字列に変換
小数を文字列に変換したい場合はstrconv.FormatFloatを使います。浮動小数点数(float32やfloat64)を文字列に変換することができます。
package main
import (
"fmt"
"strconv"
)
func main() {
pi := 3.14159
str := strconv.FormatFloat(pi, 'f', 2, 64) // 小数点以下2桁で表示
fmt.Println("文字列に変換:", str)
}
文字列に変換: 3.14
この例では、'f'は通常の小数形式、2は小数点以下の桁数、64はfloat64型を意味しています。
4. 数値を文字列に変換するときの注意点
数値を文字列に変換するときには、いくつか注意点があります。まず、数値の型に合わせて適切な関数を選ぶことです。整数ならItoaやFormatInt、小数ならFormatFloatを使います。
また、変換後の文字列は数値として計算できません。文字列をそのまま計算に使うとエラーになるので、必要な場合は再びstrconv.AtoiやParseFloatで数値に戻す必要があります。
さらに、小数の桁数を指定しないと、期待した表示形式にならない場合があります。特に通貨や割合を表示する際には、FormatFloatで桁数を調整すると便利です。
5. 数値と文字列の相互変換のまとめ
Go言語ではstrconvパッケージを使うことで、簡単に数値と文字列の変換ができます。整数ならItoaやFormatInt、小数ならFormatFloatを使い分けることで、安全かつ正確に変換が可能です。これを活用することで、ユーザー入力やファイル出力、計算結果の表示など、幅広い場面で柔軟に対応できます。