Golang 数字解析

Golang 数字解析

Go 中的数字解析是指将以 字符串 形式存在的数字转换为 数字 形式。我们所说的数字形式,是指这些数字可以转换为整数、浮点数等。

最广泛使用的数字解析包是 Go 库为我们提供的” strconv “包。 Go 中的数字解析有很多情况,我们将在本文中逐一讨论这些情况。

最基本的方法是当我们有一个以字符串形式存在的10进制数字时,我们想把它转换成一个整数。为了做到这一点,我们可以利用最广泛使用的 Atoi() 函数。

Atoi()函数的语法看起来像这样。

result, error := strconv.Atoi(String)

现在,让我们考虑一下,我们有一个包含数值 “191 “的字符串,我们想把它转换成一个整数。

例子

请看下面的代码。

package main
import (
   "fmt"
   "strconv"
)
func main() {
   var value string = "123"
   res, err := strconv.Atoi(value)
   if err != nil {
      fmt.Println("Error encountered:", err)
      return
   }
   fmt.Println("The number now is:", res)
   fmt.Printf("The type of the number is: %T", res)
}

输出

如果我们用命令 go run main.go 运行代码,那么我们将在终端看到以下输出。

The number now is: 123
The type of the number is: int

现在,第二种最常见的数字解析是当我们想把一个以字符串形式存在的数字转换为64位数字。为此,我们可以使用 strconv 本身中的 ParseInt()ParseFloat() 函数。

我们来看看这两个函数的例子,因为其中一个函数是在我们要解析一个浮点数时使用的,另一个是在我们要传递一个64位整数时使用的。

ParseInt()的语法

number, error := strconv.ParseInt(string, base, bitSize)

ParseFloat()的语法

number, error := strconv.ParseFloat(string, bitSize)

例2

在这个例子中,我们将同时使用 ParseInt()ParseFloat() 函数。

package main
import (
   "fmt"
   "strconv"
)
func main() {
   var value string = "123"
   var value1 string = "1.23"
   res, err := strconv.ParseInt(value, 0, 64)
   if err != nil {
      fmt.Println("Error encountered:", err)
      return
   }
   fmt.Println("The number now is:", res)
   fmt.Printf("The type of the number is: %T \n", res)
   res1, err1 := strconv.ParseFloat(value1, 64)
   if err1 != nil {
      fmt.Println("Error encountered:", err1)
      return
   }
   fmt.Println("The number now is:", res1)
   fmt.Printf("The type of the number is: %T", res1)
}

输出

如果我们用命令 go run main.go 运行代码,那么我们将在终端看到以下输出。

The number now is: 123
The type of the number is: int64
The number now is: 1.23
The type of the number is: float64

关于 ParseInt() 函数,需要注意的一点是,它也可以识别十六进制的数字。

假设我们有一个十六进制数字 ” 0x1F3 “,它以字符串的形式存在,我们想把它转换成一个整数。为此,我们可以只使用 ParseInt() 函数。

例3

请看下面的代码。

package main
import (
   "fmt"
   "strconv"
)
func main() {
   var value string = "0x1F3"
   res, err := strconv.ParseInt(value, 0, 64)
   if err != nil {
      fmt.Println("Error encountered:", err)
      return
   }
   fmt.Println("The number now is:", res)
   fmt.Printf("The type of the number is: %T \n", res)
}

输出

如果我们用命令 go run main.go 运行代码,那么我们将在终端看到以下输出。

The number now is: 499
The type of the number is: int64

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程