在 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 次查看

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告