Go語言中的數字解析


Go語言中的數字解析是指將以**字串**形式存在的數字轉換為**數字**形式。數字形式指的是這些數字可以轉換為整數、浮點數等。

Go語言庫提供的最常用的數字解析包是“**strconv**”包。Go語言中的數字解析有很多情況,我們將在本文中逐一講解。

最基本的方法是當我們有一個實際上以字串形式存在的十進位制數,並且想要將其轉換為整數時。為此,我們可以使用最常用的**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

更新於:2022年2月21日

677 次瀏覽

開啟你的職業生涯

透過完成課程獲得認證

開始學習
廣告
© . All rights reserved.