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.

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