在 Golang 中查詢指定數字的整數部分


在 Go 語言中,整數是表示沒有小數部分的整數的數值。整數可以是有符號的或無符號的,並且可以根據用於表示它們的位數大小而有不同的尺寸。

有時需要獲取指定數字的整數部分以執行各種計算。在本文中,我們將討論如何在 Golang 中查詢給定數字的整數部分。

使用型別轉換將浮點數轉換為整數

在 Golang 中獲取給定數字的整數部分的一種方法是使用型別轉換。型別轉換是將一個數據型別的值轉換為另一個數據型別的值的過程。在這種情況下,我們可以透過使用型別轉換將浮點值轉換為整數值。

以下是如何使用型別轉換查詢給定數字的整數部分的示例:

示例

package main

import "fmt"

func main() {
   var num float64 = 3.14
   integer := int(num)
   fmt.Println("The integer value of", num, "is", integer)
}

輸出

The integer value of 3.14 is 3

在此示例中,我們聲明瞭一個名為 num 的變數,其型別為 float64,並將其賦值為 3.14。然後,我們使用 int() 函式將浮點值轉換為整數值,並將結果賦值給一個名為 integer 的新變數。最後,我們使用 fmt.Println() 函式將 integer 的值列印到控制檯。

使用 Math 包將浮點數四捨五入到最接近的整數

在 Golang 中查詢給定數字的整數部分的另一種方法是使用 math 包。math 包提供了許多用於數學運算的函式,包括將浮點數四捨五入到最接近的整數。

以下是如何使用 math 包查詢給定數字的整數部分的示例:

示例

package main

import (
   "fmt"
   "math"
)

func main() {
   var num float64 = 3.14
   integer := int(math.Round(num))
   fmt.Println("The integer value of", num, "is", integer)
}

輸出

The integer value of 3.14 is 3

在此示例中,我們匯入了 math 包並聲明瞭一個名為 num 的變數,其型別為 float64,值為 3.14。然後,我們使用 math.Round() 函式將浮點值四捨五入到最接近的整數,並使用型別轉換將其轉換為整數值。最後,我們使用 fmt.Println() 函式將 integer 的值列印到控制檯。

使用 strconv 包將字串轉換為整數

如果您有一個表示數值的字串,則可以使用 strconv 包將其轉換為整數值。strconv 包提供了許多用於將字串轉換為不同資料型別的函式。

以下是如何使用 strconv 包查詢給定字串的整數部分的示例:

示例

package main

import (
   "fmt"
   "strconv"
)

func main() {
   str := "42"
   integer, err := strconv.Atoi(str)
   if err != nil {
      fmt.Println(err)
   } else {
      fmt.Println("The integer value of", str, "is", integer)
   }
}

輸出

The integer value of 42 is 42

在此示例中,我們聲明瞭一個名為 str 的變數,其值為 "42"。然後,我們使用 strconv.Atoi() 函式將字串值轉換為整數值,並將結果賦值給一個名為 integer 的新變數。如果轉換過程中出現錯誤,我們將使用 fmt.Println() 函式將錯誤訊息列印到控制檯。否則,我們將列印 `integer 的值。

使用 Floor 函式

Golang 中的 math.Floor() 函式可用於提取浮點數的整數部分。此函式以浮點數作為引數,並返回小於或等於給定數字的最大整數值。示例如下:

示例

package main

import (
   "fmt"
   "math"
)

func main() {
   var x float64 = 4.5
   fmt.Println(math.Floor(x))
}

輸出

4

使用 ParseInt 函式

Golang 中的 strconv 包提供了一個名為 ParseInt 的函式,可用於提取十六進位制數字的整數值。示例如下:

示例

package main

import (
   "fmt"
   "strconv"
)

func main() {
   var hexStr string = "1a"
   var base int = 16
   var bitSize int = 64

   hexVal, err := strconv.ParseInt(hexStr, base, bitSize)
   if err == nil {
      fmt.Println(hexVal)
   }
}

輸出

26

在上面的示例中,我們使用了 strconv.ParseInt() 函式來提取十六進位制字串 1a 的整數值。base 引數設定為 16,表示該字串是十六進位制數。bitSize 引數設定為 64,表示返回的整數值應為 64 位整數。該函式返回 26,即十六進位制數 1a 的十進位制等價物。

結論

在本文中,我們看到了在 Golang 中提取數字整數部分的不同方法。

更新於: 2023年4月12日

322 次檢視

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告