Go 语言的浮点型(float)

前面两个小节我们我们都是在讲解整型的数据类型,也就是说都是整数,但是在开发中我们也会经常使用小数数据,这节课我们就主要介绍 Go 语言中处理小数的数据类型

 

1. 实数类型

Go 语言提供了两种精度的浮点数 float32 和 float64,它们的算术规范由 IEEE754 浮点数国际标准定义,该浮点数规范被所有现代的 CPU 支持。

序号 类型 长度
1 float32 1.401298464324817e-45~3.4028234663852886e+38
2 float64 5e-324~1.7976931348623157e+308

 

2. 复数类型

序号 类型 长度
1 complex64 实部和虚部都是一个float32
2 complex128 实部和虚部都是一个float64

 

3. 使用示例

通过几个示例加深对这几个数据类型的理解。

 

3.1 实数类型示例

在 Go 语言中小数值类型取决于计算机操作系统的位数,我是使用的 64位 的计算机,所以使用:=时,会得到一个类型为 float64 的变量

代码块
  • 1  package main
  • 2
  • import (
  • 4        "fmt"
  • )
  • 6
  • 7 func main() {
  • 8        var a float32
  • 9        a = 1.2
  • 10      fmt.Println("a = ", a) // 此处的结果
  • 11
  • 12      //自动推导类型
  • 13      b := 1.2
  • 14      fmt.Printf("b type is %Tn", b)
  • 15      fmt.Println("b = ", b)
  • 16  }

输出结果:

图片描述

实数类型示例输出结果

 

3.2 复数类型示例

在 Go 语言中复数值类型取决于计算机操作系统的位数,我是使用的 64 位的计算机,所以使用:=时,会得到一个类型为 complex128 的变量

代码块
  • package main
  • 2
  • import (
  • 4        "fmt"
  • )
  • 6
  • func main() {
  • 8        var a complex64
  • 9        a = 1.2 + 2.22i
  • 10      fmt.Println("a = ", a) // 此处的结果
  • 11
  • 12      //自动推导类型
  • 13      b := 1.2 + 3.45i
  • 14      fmt.Printf("b type is %Tn", b)
  • 15      fmt.Println("b = ", b)
  • 16
  • 17      //通过内建函数取实部和虚部
  • 18      fmt.Println("real(b) = ", real(b), " , imag(b) = ", imag(b))
  • 19  }

输出结果:

图片描述

复数类型示例输出结果

 

4. 小结

本文主要学习了 Go 语言中的浮点型的使用,注意高精度向低精度转失真的风险。

文章来源于网络,侵删!

相关新闻

历经多年发展,已成为国内好评如潮的Linux云计算运维、SRE、Devops、容器云、Go、Python开发专业人才培训机构!