Parsing numbers from strings is a basic but common task in many programs; here's how to do it in Go. | ||
package main |
||
The built-in package `strconv` provides the number parsing. | import ( |
|
"fmt" |
||
"strconv" |
||
) |
||
func main() { |
||
With `ParseFloat`, this `64` tells how many bits of precision to parse. | f, _ := strconv.ParseFloat("1.234", 64) |
|
fmt.Println(f) |
1.234 |
|
For `ParseInt`, the `0` means infer the base from the string. `64` requires that the result fit in 64 bits. | i, _ := strconv.ParseInt("123", 0, 64) |
|
fmt.Println(i) |
123 |
|
`ParseInt` will recognize hex-formatted numbers. | d, _ := strconv.ParseInt("0x1c8", 0, 64) |
|
fmt.Println(d) |
456 |
|
A `ParseUint` is also available. | u, _ := strconv.ParseUint("789", 0, 64) |
|
fmt.Println(u) |
789 |
|
`Atoi` is a convenience function for basic base-10 `int` parsing. | k, _ := strconv.Atoi("135") |
|
fmt.Println(k) |
135 |
|
Parse functions return an error on bad input. | _, e := strconv.Atoi("wat") |
|
fmt.Println(e) |
strconv.Atoi: parsing "wat": invalid syntax |
|
} |