Converting a string to an integer in Go

Clive B.
jump to solution

The Problem

You don’t know how to convert a string to an integer in Go.

The Solution

The simplest way to convert a string to an integer is to use the Atoi function from the strconv package.

For example, you can convert the string "123" to the value 123 as follows:

package main

import (
	"fmt"
	"log"
	"strconv"
)

func main() {
	example := "123"
	integer, err := strconv.Atoi(example)
	if err != nil {
		log.Fatal("failed to convert string to integer", err)
	}

	fmt.Println(integer + 1)
}

This prints the sum of the integer plus one:

124

For performance reasons (and convenience), the above example assumes that your integer is a base-10 signed integer.

If you need more control, you can use the ParseInt function from the same package:

package main

import (
	"fmt"
	"log"
	"strconv"
)

func main() {
	hexadecimal := "7b"
	integer, err := strconv.ParseInt(hexadecimal, 16, 32)
	if err != nil {
		log.Fatal("failed to convert string to integer", err)
	}

	fmt.Println(integer + 1)
}

This prints the sum of the integer plus one:

124

Note: Although the above example uses base 16 and bit size 32, ParseInt still returns a 64-bit integer.

Converting Strings to Other Numerical Types

If you want to convert a string to another numerical type, you can use the ParseFloat, ParseUint, or ParseComplex functions, also from the strconv package.

How To Print Struct Fields in Go
Clive B.
Go For Each Loops
Venter C.
Converting an Int to a String in Go
Clive B.

Considered "not bad" by 4 million developers and more than 150,000 organizations worldwide, Sentry provides code-level observability to many of the world's best-known companies like Disney, Peloton, Cloudflare, Eventbrite, Slack, Supercell, and Rockstar Games. Each month we process billions of exceptions from the most popular products on the internet.

Sentry