C-Sharp | Java | Python | Swift | GO | WPF | Ruby | Scala | F# | JavaScript | SQL | PHP | Angular | HTML
Argument 1: We call ParseInt with 3 arguments—the first is the string we want to get an integer from.
Argument 2: This is the base of the string being parsed. Most numbers we use are base 10.
Argument 3: This is the bit size of the resulting int. 0 means int, while 6 (for example) means int16, with 16 bits.
Golang program that uses strconv.ParseInt
package main
import (
"fmt"
"strconv"
)
func main() {
value := "123"
// Convert string to int.
number, _ := strconv.ParseInt(value, 10, 0)
// We now have an int.
fmt.Println(number)
if number == 123 {
fmt.Println(true)
}
}
Output
123
true
Tip: The Atoi call here is simpler than ParseInt. This gives it an advantage in readability in programs.
Golang program that uses Atoi
package main
import (
"fmt"
"strconv"
)
func main() {
value := "456"
// Use Atoi to parse string.
number, _ := strconv.Atoi(value)
fmt.Println(number)
fmt.Println(number + 1)
}
Output
456
457
Golang program that uses strconv.FormatInt
package main
import (
"fmt"
"strconv"
)
func main() {
value := 1055
// Convert int to string with FormatInt.
// ... First convert to int64.
result := strconv.FormatInt(int64(value), 10)
fmt.Println(result)
if result == "1055" {
fmt.Println(true)
}
}
Output
1055
true
Note: Unlike ParseInt and Atoi, FormatInt and Itoa do not return an error value. They succeed on all possible arguments.
Golang program that uses Itoa, converts int to string
package main
import (
"fmt"
"strconv"
)
func main() {
value := 700
// Use Itoa on an int.
result := strconv.Itoa(value)
fmt.Println(result)
// The string has 3 characters.
fmt.Println(len(result))
}
Output
700
3
Version 1: This version of the code uses the ParseInt method. It repeatedly calls ParseInt in a loop.
Version 2: Here we use the Atoi method, in a similar way as in version 1. We try to determine the time required per method call.
Result: We find that the ParseInt method seems to be faster. It should be preferred when it can be used.
Golang program that benchmarks ParseInt, Atoi
package main
import (
"fmt"
"strconv"
"time"
)
func main() {
t0 := time.Now()
original := "1234";
// Version 1: use ParseInt.
for i := 0; i < 1000000; i++ {
result, _ := strconv.ParseInt(original, 10, 0)
if result != 1234 {
return
}
}
t1 := time.Now()
// Version 2: use Atoi.
for i := 0; i < 1000000; i++ {
result, _ := strconv.Atoi(original)
if result != 1234 {
return
}
}
t2 := time.Now()
// Results of benchmark.
fmt.Println(t1.Sub(t0))
fmt.Println(t2.Sub(t1))
}
Output
14.023ms ParseInt
18.5125ms Atoi