Go 数字解析

从字符串解析出数字是一个基本的而且很常见的任务。
Go内置的strconv提供了数字解析功能。

  1. package main
  2. import "strconv"
  3. import "fmt"
  4. func main() {
  5. // 使用ParseFloat解析浮点数,64是说明使用多少位
  6. // 精度来解析
  7. f, _ := strconv.ParseFloat("1.234", 64)
  8. fmt.Println(f)
  9. // 对于ParseInt函数,0 表示从字符串推断整型进制,
  10. // 则表示返回结果的位数
  11. i, _ := strconv.ParseInt("123", 0, 64)
  12. fmt.Println(i)
  13. // ParseInt能够解析出16进制的数字
  14. d, _ := strconv.ParseInt("0x1c8", 0, 64)
  15. fmt.Println(d)
  16. // 还可以使用ParseUint函数
  17. u, _ := strconv.ParseUint("789", 0, 64)
  18. fmt.Println(u)
  19. // Atoi是解析10进制整型的快捷方法
  20. k, _ := strconv.Atoi("135")
  21. fmt.Println(k)
  22. // 解析函数在遇到无法解析的输入时,会返回错误
  23. _, e := strconv.Atoi("wat")
  24. fmt.Println(e)
  25. }

运行结果

  1. 1.234
  2. 123
  3. 456
  4. 789
  5. 135
  6. strconv.ParseInt: parsing "wat": invalid syntax