在线文档  >   Golang练习   >   数字解析

从字符串中解析数字是许多程序中的基本但常见任务。
以下是在Go中执行此操作的方法。

package main

// 内置包 `strconv` 提供数字解析。
import (
    "fmt"
    "strconv"
)

func main() {

    // 使用`ParseFloat`时,`64`指定要解析的精度位数。
    f, _ := strconv.ParseFloat("1.234", 64)
    fmt.Println(f)

    // 对于`ParseInt`,`0`表示从字符串中推断出进制。`64`要求结果适合64位。
    i, _ := strconv.ParseInt("123", 0, 64)
    fmt.Println(i)

    // `ParseInt`将识别十六进制格式的数字。
    d, _ := strconv.ParseInt("0x1c8", 0, 64)
    fmt.Println(d)

    // `ParseUint`也可用。
    u, _ := strconv.ParseUint("789", 0, 64)
    fmt.Println(u)

    // `Atoi`是一个基本的10进制`int`解析的方便函数。
    k, _ := strconv.Atoi("135")
    fmt.Println(k)

    // 解析函数在错误输入时返回一个错误。
    _, e := strconv.Atoi("wat")
    fmt.Println(e)
}

运行结果如下:

$ go run number-parsing.go 
1.234
123
456
789
135
strconv.ParseInt: parsing "wat": invalid syntax