从字符串中解析数字

5年以前  |  阅读数:379 次  |  编程语言:Golang 

从字符串中解析数字在很多程序中是一个基础常见的任务,在Go 中是这样处理的。

package main

// 内置的 `strconv` 包提供了数字解析功能。
import "strconv"
import "fmt"

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 进制整型数转换函数。
    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
 相关文章:
Golang使用定时器
Golang语法基础:在结构体类型中定义方法
Golang语法基础:可变参数
使用errors传递错误信息
Golang使用`math/rand`包生成伪随机数
从字符串中解析数字
使用`strings`包处理字符串
使用printf格式化字符串
定义与使用常量
Golang语法基础:使用协程
Golang处理时间的格式化及其与字符串之间的转换
使用`sort`包排序
Golang使用正则表达式
使用匿名函数
Golang语法基础:利用自动推导定义变量
定义与使用函数
Golang语法基础,使用不同类型的数据
Golang语法基础:使用map
Golang语法基础,使用if
Golang语法基础:内建多返回值支持